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++ |