1. 标识符的大小写规则
2. 首字母缩写词(如:DB,Xml, Html)的大小写规则
3.选择名称
4. 缩写和首字母缩写词
5. 程序集和 DLL 的名称
6. 命名空间的名称
7. 类、结构和接口的名称
8. 类成员的名称
9. 参数名
10. 资源
标识符 | 大小写方式 | 示例 |
类 | Pascal | AppDomain |
枚举类型 | Pascal | ErrorLevel |
枚举值 | Pascal | FatalError |
事件 | Pascal | ValueChanged |
异常类 | Pascal | WebException |
只读的静态字段 | Pascal | RedValue |
接口 | Pascal | IDisposable |
方法 | Pascal | ToString |
命名空间 | Pascal | System.Drawing |
参数 | Camel | typeName |
属性 | Pascal | BackColor |
2. 首字母缩写词(如:DB,Xml, Html)的大小写规则
单词为2个时,在Pascal标识符中全部大写大写如DBHelp |
单词为3个以上,在Pascal标识符中首字大写如XmlHelp |
单词个数无论为多少,在Camel标识符中都小写,如dbHelp,xmlHelp |
3.选择名称
请选择易读的标识符名称,如HorizontalAlignment >AlignmentHorizontal |
可读性比简洁性更重要, 如CanScrollHorizontally > ScrollableX |
不要使用下划线’_’、连字符’-’或任何其他非字母数字字符,如 workModel > work_model |
不要使用匈牙利表示法,如count > intCount |
4. 缩写和首字母缩写词
不要将缩写或缩略形式用作标识符名称的组成部分, OnButtonClick > OnBtnClick |
除非必要,不要使用任何未被广泛接受的首字母缩写词,ProductDataSet > ProductDS |
5. 程序集和 DLL 的名称
一定要为程序集 DLL 选择指示大的功能块(如 System.Data)的名称。程序集和 DLL 的名称不必对应于命名空间名称,但是在命名程序集时遵循命名空间名称这种做法是合理的 |
考虑按下面的模式命名 DLL:<Company>.<Component>.dll , 其中 <Component> 包含一个或多个以圆点分隔的子句, 如Fast.WebControls.dll |
6. 命名空间的名称
命名空间名称的一般格式如下Fast.EB. Encryption: <Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>] |
第一级公司名称防止不同公司开发; |
第二级使用稳定的、与版本无关的产品名称 |
使用 Pascal 大小写格式,并用句点分隔命名空间各部分,如 Fast |
适当的时候可考虑使用复数命名空间名称。例如, System.Collections > System.Collection;但是,品牌名称和首字母缩写词属于此规则的例外情况。例如,System.IO > System.IOs |
命名空间和其中的类型不要使用相同的名称, 如BinarryEncryption > Encryption类 |
不要引入宽泛的类型名称,如 Element、Node、Log 和 Message,极可能导致类型名称冲突;应对宽泛的类型名称进行限定(例如 FormElement、XmlNode EventLog、SoapMessage); |
7. 类、结构和接口的名称
Pascal 大小写格式,如FileMode |
不要为类名(除接口外)加前缀(如字母 C),如File> CFile, IFileStream > FileStream |
考虑在派生类的末尾使用基类名称, 如 Stream -> FileStream |
定义类/接口对, 确保类和接口名称除字母 I外,二者应完全相同,如IFileStream > FileStream |
自定义属性名称添加 Attribute 后缀,如ObsoleteAttribute 和 AttributeUsageAttribute |
自定义事件名称添加 EventHandler 后缀,如 AutoPostBackEventHandler |
System.EventArgs 的派生类添加 EventArgs 后缀,如AutoPostBackEventArgs |
System.Exception 的派生类类添加 Exception 后缀,如 DataNotExistsException |
System.IO.Stream 的派生类类添加Stream 后缀,如FileStream |
枚举值名称中不使用前缀,如Color {Red,Green } > Color {clRed,clGreen } |
不要添加 Enum,Flags作为枚举后缀, 如 Color > ColorEnum |
位域枚举使用复数名称 ,其他使用单数名称,如 FileReadModes { Read=1, Write=2 }, FileReadMode { Read, Write, ReadWrite} |
8. 类成员的名称
方法 : 使用动词或动词短语作为方法的名称,如 Update() |
属性 : 使用名词、名词短语或形容词作为属性的名称,如 Length; |
属性 : 使用肯定性短语作为布尔值属性的名称。(如 Is、Can 或 Has),如 hasValue。 |
属性 : 考虑为属性提供与其类型相同的名称,如枚举Color,返回值属性也为Color |
事件 : 使用动词或动词短语作为事件的名称, 如Closing,Closed; |
事件 : 使用现在时和过去式进行描述,而不用After和Begin如 Closed > AfterClosed |
事件 : 使用命名为“sender”和“e”的两个参数,如 Dialog1_Closed(object sender,object e) |
字段 : 使用 Camel大小写格式, 如 data |
字段 : 使用名词或名词短语作为字段的名称, 如private int data |
字段 : 不要在字段名称中使用前缀(g_ , s_), 如 private int data > g_data |
9. 参数名
使用 Camel大小写格式, 如 (object sender) |
考虑使用反映参数含义的名称而不是反映参数类型的名称; 如 (object sender) |
10. 资源
在资源键中使用 Pascal 大小写格式 |
使用点分隔符(“.”)以清晰的层次结构表示标识符,如:Menus.FileMenu.Close.Text |