欢迎来到天天文库
浏览记录
ID:11493150
大小:134.00 KB
页数:10页
时间:2018-07-12
《dotnet项目编码规范》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、DotNet项目编码规范1.大小写约定1.1常见标记法lCamel标记法:首字母是小写的,接下来的单词都以大写字母开头。lPascal标记法:首字母是大写的,接下来的单词都以大写字母开头。l匈牙利标记法:在以Pascal标记法的变量前附加一个小写的变量名缩写。1.2标识符大小写方式示例类PascalAppDomain枚举类型PascalErrorLevel枚举值PascalFatalError事件PascalValueChanged异常类PascalWebException只读的静态字段PascalRedValue接口PascalID
2、isposable方法PascalToString命名空间PascalSystem.Drawing参数CameltypeName属性PascalBackColor循环迭代变量全部小写i,o…2.命名约定2.1通用命名约定l选择易读的标识符名称。例如,英文属性名称HorizontalAlignment比AlignmentHorizontal更具可读性。l可读性比简洁性更重要。例如,属性名称CanScrollHorizontally比ScrollableX(指X轴,但意义不明确)更好。l不要使用下划线、连字符或任何其他非字母数字字符。例如
3、,不能使用Is_Enable,Is-Enable,IsEnable9等。l不要使用匈牙利表示法。例如,不能使用iNum(i表示int)等。l避免使用与常用编程语言的关键字冲突的标识符。例如,不能使用关键字做标识符。l不要将缩写或缩略形式用作标识符名称的组成部分。除非必要,不要使用任何未被广泛接受的首字母缩写词。例如,使用OnButtonClick而不要使用OnBtnClick。l对于类型名称,应使用语义上有意义的名称而不要使用语言特定的关键字。例如,名称GetLength比GetInt更好。l在标识符的语义含义仅限于其类型的极少数情况
4、下,应使用一般公共语言运行库(CLR)类型名称,而不要使用语言特定的名称。例如,将数据转换为Int16的方法应命名为ToInt16而不是ToShort,因为Short是Int16的语言特定的类型名称。l在标识符没有语义含义且参数的类型不重要的极少数情况下,应使用通用名称(如值或项),而不要重复类型名称。例如,没有意义的参数可以使用value,item等。2.2程序集和DLL的名称一定要为程序集DLL选择指示大的功能块(如System.Data)的名称。程序集和DLL的名称不必对应于命名空间名称,但是在命名程序集时遵循命名空间名称这种做
5、法是合理的。考虑按下面的模式命名DLL:..dll其中包含一个或多个以圆点分隔的子句。例如,Contoso.WebControls.dll。2.3命名空间的名称命名空间名称的一般格式如下:.(
6、)[.][.]例如,Microsoft.WindowsMobile.DirectX。命名空间的名称应遵守以下约定:l使用公司名称作为命名空间的前缀以防止不同公司开发的命名空间具有
7、相同的名称和前缀。l在命名空间名称的第二级使用稳定的、与版本无关的产品名称。l适当的时候可考虑使用复数命名空间名称。例如,使用System.Collections而不使用System.Collection。但是,品牌名称和首字母缩写词属于此规则的例外情况。例如,使用System.IO,而不要使用System.IOs。l命名空间和其中的类型不要使用相同的名称。例如,不要在将“Debug”用作命名空间名称的同时,又在该命名空间中提供一个名为“Debug”的类。有些编译器要求对这种类型进行完全限定。l不要引入宽泛的类型名称,如Element
8、、Node、Log和Message。在通常情况下,这样极可能导致类型名称冲突。应对宽泛的类型名称进行限定(例如FormElement、XmlNodeEventLog、SoapMessage)。l不要指定会与核心命名空间中的任何类型发生冲突的类型名称。例如,不要使用Directory作为类型名称,因为这会与Directory类型冲突。2.4类、结构和接口的名称l按照Pascal大小写格式,使用名词或名词短语(或偶尔使用形容词短语)为类、接口和值类型命名。l不要为类名加前缀(如字母C)。l考虑在派生类的末尾使用基类名称。例如,从Strea
9、m继承的Framework类型以Stream结尾,从Exception继承的类型以Exception结尾。l为接口名称加上字母I前缀,以指示该类型为接口。l在定义类/接口对(其中类是接口的标准实现)时,一定要确保类和接口
此文档下载收益归作者所有