自己總結的C#編碼規範--1.命名約定篇
命名約定
我們在命名識別符號時(包括引數,常量,變數),應使用單詞的首字母大小寫來區分一個識別符號中的多個單詞,如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能讓人更快的知道該變數的含意。