2.1. 大小写约定
2.1.1. 标识符的大小写规则
ü 用PascalCasing命名多个单词构成的命名空间、类型以及成员的名字。
例如:使用TextColor而不使用Textcolor,单个单词(Button)的首字母大写,当一个单词为复合词(endpoint)作为一个单词,只有第一字母大写。
ü 用camelCasing命名参数的名字。
ü 不同类型标识符的大小写规则,如下表:
标识符 | 命名法 | 例子 |
命名空间 | Pascal | nameSpace System.Scurity{...} |
类型 | Pascal | public class StreamReader{...} |
接口 | Pascal | public interface IEnumerable{...} |
方法 | Pascal | public class Object{ |
属性 | Pascal | public class String{ |
事件 | Pascal | public class Process{ |
字段(静态) | Pascal | public class MessageQueue{ |
枚举值 | Pascal | FileMode{Append,...} |
参数 | Camel | public class Convert{ |
2.1.2. 缩写词首字母的大小写
ü 要把缩写词首字母为两个字母全部大写,当是camelCasing风格的参数名的作为第一单词来使用。
例如:
System.IO
Public void StartIO(Stream ioStream)
ü 把缩写词首字母为三个或三个以上字母第一字母大写,当是camelCasing风格的标识符作为第一单词来命名。
例如:
System.Xml
Public void processHtmlTag(string htmlTag)
ü 不要把camelCasing风格的标识符头部的任何首字母缩写词的任何字母大写,无论首字母缩写词的长度是多少。
2.1.3. 复合词和常用术语的大小写
ü 在涉及大小写时,大多数复合词术语要作为单个单词处理。
ü 不要把闭合形式的复合词中每个单词的首字母大写。
ü 常用的复合词和常用术语的大小写及拼写。如下表:
Pascal | Camel | Not |
BitFlag | bitFlag | Bitflag |
Callback | callback | CallBack |
Canceled | canceled | Cancelled |
DoNot | doNot | dont |
| | |
Endpoint | endpoint | EndPoint |
FileName | fileName | Filename |
Gridline | gridline | GridLine |
Hashtable | hashtable | HashTable |
Id | id | ID |
Indexes | indexes | Indices |
LogOff | logOff | LogOut |
LogOn | logOn | LogIn |
Metadata | metadata | MetaData,metaData |
Multipanel | multipanel | MultiPanel |
Multiview | multiview | MultiView |
Namespace | namespace | NameSpace |
Ok | ok | OK |
Pi | pi | PI |
Placehoder | placehoder | PlaceHoder |
Signln | signln | SignOn |
SignOut | signOut | SignOff |
UserName | userName | Username |
WhiteSpace | whiteSpace | Whitespace |
Writable | writable | Writeable |
2.1.4. 是否区分大小写
ü 任何外部可访问的API不应该仅通过大小写来区分位于同一个上下文中的两个名字。
ü 区分大小写只有一条规范:不要以为所有的编程语言都是区分大小写的,实际情况并非如此。不应该仅仅通过大小写来区分名字。
2.2. 通用命名的约定
2.2.1. 单词的选择
ü 为标识符选择易于阅读的名字。
ü 要更看重可读性,而不是更看重简短性。如属性名CanScrollHorizontally要胜过ScrollableX。
û 不要使用下划线、连字符以及其他任何既非字母也非数字的字符。
û 不要使用匈牙利命名法。
û 避免使用与广泛使用的编程语言的关键字有冲突的标识符。
2.2.2. 使用单词缩写和首字母缩写词
û 不要使用缩写词和缩约词作为标识符名字的一部分。
例如:要用GetWindow,而不用GetWin。
û 不要使用未被广泛接受的首字母缩写词,即使是被广泛接受的首字母缩写词,也只应该在必需的时候才使用。
例如:UI用来表示User Interface,HTML用来表示Hypertext Markup Language。虽然
许多框架设计师认为一些新近的首字母缩写词很快就会被广泛接受,但在框架的标识
符中使用它们仍是不好的做法。
2.2.3. 避免使用语言特有的名字
ü 要给类型名使用语义上有意义的名字,而不要使用语言特有的关键字。
例如:GetLength这个名字比GetInt要好。
ü 要使用CLR的通用类型名,而不要使用语言特有的别名——如果除了类型之外,标识符没有其他的语义。
例如:一个把类型转换为System. Int64的方法应该被命名为ToInt64,而不是ToLong
(因为System. Int64是CLR类型名,它对应于C#特有的别名long)。
ü 语言特有的类型名及对应的CLR类型名,如下表:
C# | Visual Basic | C++ |