命名約定
我們在命名標識符時(包括參數,常量,變量),應使用單詞的首字母大小寫來區分一個標識符中的多個單詞,如UserName.
-
PascalCasing
PascalCasing包含一到多個單詞,每一個單詞第一個字母大寫,其余字母均小寫。例如:HelloWorld、SetName等。
除了參數、變量、常量外,所有命名空間名稱、類、函數、接口、屬性、事件、枚舉等名稱的命名,使用 Pascal 風格。
-
camelCasing
camelCasing包含一到多個單詞,第一個單詞首字母小寫,其余單詞首字母大寫。例如:name、productId等。
參數與變量的命名使用camelCasing.
-
SCREAMING_CAPS
SCREAMING_CAPS包含一到多個單詞,每個單詞的所有字母都大寫,單詞與單詞之間用"_"連接,該風格目前在c#中只用於const常量。
如:public const string DEFAULT_PAGE = "default.aspx";
-
私有變量的命名
Private 的私有變量使用下划線"_"+camelCasing的大小寫規則,以便快速確認該變量的作用域。
如: private int _userId;
-
首字母縮寫詞的大小寫
首字母縮寫詞是由一個短語的首字母組成的,如Xml(ExtensibleMarkuLaguage),IO(Input and Output)。它和單詞縮寫是有區別的,單詞縮寫僅僅是把一個單詞的長度變短。
-
把兩個字母的首字母縮寫詞全部大寫,除非它是camelCasing的第一個單詞。
using System.IO;
public void StartIO(Stream ioStream)
-
由三個或以上的字母組成的首字母縮寫詞,只有第一個字母大寫,如Xml,Html.除非首字母是camelCasing標識符的第一個單詞。
using System.Xml;
public void ProcessXmlNode(XmlNode xmlNode)
-
復合詞的大小寫
不要把復合詞中的首字母大寫。復合詞要當成一個單詞來處理。
如endpoint, callback,metadata,namespace等都是正確的寫法
-
在帶單位的值的變量后加上"_camelCasing單位"
將單位加入標識符命名中,可以使使用者快速准確的知道傳人數據的單位,減少錯誤的發生。
如public void CreateCache(int cacheSize)
傳入的數據是bytes, KB, MB 還是GB?
改成public void CreateCache(int cacheSize_mb)
一目了然,並且會減少調用者傳入錯誤數據的可能。
其他一些沒有單位的函數參數以及帶單位的版本。
-
不要使用匈牙利命名法
匈牙利命名法是指用小寫形式的數據類型縮寫來作為變量名的前綴。如:strName,intCount。
這種命名法在C和C++時代很流行,可以幫助程序員記住自己的類型。
但在C#中需要禁用,除非你有足夠的理由,因為:
-
C#都是強類型的,現在的IDE(如Visual Studio)可以自動的檢測出當前變量的類型以及類型錯誤
- 開發初期經常需要修改變量的類型,使用匈牙利命名法維護很困難。
-
使用英語語序命名標識符
人在閱讀代碼時,能更快的理解符合其閱讀習慣的命名。
如VerticalAlignment比AlignmentVertical能讓人更快的知道該變量的含意。