編碼規範對於程式設計師而言尤為重要,有以下幾個原因:

1.一個專案的生命週期中,80%的花費在於維護;

2.幾乎沒有任何一個專案,在其整個生命週期中,均由最初的開發人員來維護;

3.命名規範可以改善專案的可讀性,可以讓程式設計師儘快而徹底地理解新的程式碼;

4.如果你將原始碼作為產品釋出,就需要確任它是否被很好的打包並且清晰無誤,比如你已構建的其它任何產 品。 為了執行規範,每個軟體開發人員必須一致遵守編碼規範。

常見的命名規則我們都知道:

Pascal 規則:

每個單詞開頭的字母大寫(如 TestCounter).

Camel 規則:

除了第一個單詞外的其他單詞的開頭字母大寫. 如. testCounter.

Upper 規則:

僅用於一兩個字元長的常量的縮寫命名,超過三個字元長度應該應用Pascal規則

例如:

public class Math
{
public const PI = ...
public const E = ...
public const FeigenBaumNumber = ...
}

針對C#開發者,整理了15條命名規範!

1.類命名規則

  • 類名應該為名詞及名詞短語,儘可能使用完整的詞.

  • 使用Pascal規則

  • 不要使用類字首 - 不要使用下劃線字元 (_)。

  • 有時候需要提供以字母 I 開始的類名稱,雖然該類不是介面。只要 I 是作為類名稱組成部分的整個單詞的第一個字母,這便是適當的。例如,類名稱 IdentityStore 就是適當的。

  • 在適當的地方,使用複合單詞命名派生的類。派生類名稱的第二個部分應當是基類的名稱。例如,ApplicationException 對於從名為 Exception 的類派生的類是適當的名稱,原因是 ApplicationException 是一種 Exception。請在應用該規則時進行合理的判斷。例如,Button 對於從 Control 派生的類是適當的名稱。儘管按鈕是一種控制元件,但是將 Control 作為類名稱的一部分將使名稱不必要地加長。

2.介面命名規則

  • 介面名稱應該為名詞及名詞短語或者描述其行為的形容詞,儘可能使用完整的詞. (Example IComponent or IEnumberable)

  • 使用Pascal規則

  • 使用字元I為字首,並緊跟一個大寫字母(即介面名的第一個字母大寫)

複製程式碼程式碼如下:

interface ICompare
{
int Compare();
}

3.列舉命名規則

  • 對於 Enum 型別和值名稱使用 Pascal 大小寫。
  • 少用縮寫。
  • 不要在 Enum 型別名稱上使用 Enum 字尾。
  • 對大多數 Enum 型別使用單數名稱,但是對作為位域的 Enum 型別使用複數名稱。
  • 總是將 FlagsAttribute 新增到位域 Enum 型別。

4.變數命名

  • 在簡單的迴圈語句中計數器變數使用 i, j, k, l, m, n
  • 使用 Camel 命名規則

5. 方法命名

  • 使用Pascal規則

  • 對方法名採用一致的動詞/賓語或賓語/動詞順序。例如,將動詞置於前面時,所使用的名稱諸如 InsertWidget 和 InsertSprocket;將賓語置於前面時,所使用的名稱諸如 WidgetInsert 和 SprocketInsert。

  • 推薦名稱應該為動詞或動詞短語.例如Save,SaveCustomer,而不要使用CustomerSave

  • 不要在方法中重複類的名稱。例如,如果某個類已命名為 Book,則不要將某個方法稱為 Book.CloseBook,而可以將方法命名為 Book.Close。

6.屬性命名

  • 名稱應該為名詞及名詞短語

  • 使用Pascal規則

  • 對於bool型屬性或者變數使用Is(is)作為字首,不要使用Flag字尾,例如應該使用IsDeleted,而不要使用DeleteFlag

7.集合命名

  • 名稱應該為名詞及名詞短語

  • 使用Pascal規則

  • 名稱後面追加“Collection”

8. 事件命名

  • event handlers命名使用 EventHandler 字尾.

  • 兩個引數分別使用 sender 及 e

  • 使用Pascal規則

  • 事件引數使用EventArgs 字尾

  • 事件命名使用語法時態反映其激發的狀態,例如 Changed,Changing.

  • 考慮使用動詞命名. 變數命名

  • 在簡單的迴圈語句中計數器變數使用 i, j, k, l, m, n

  • 使用 Camel 命名規則

9.自定義的屬性以Attribute結尾

程式碼如下:

public class AuthorAttribute : Attribute
{
}

10.自定義的異常以Exception結尾

複製程式碼程式碼如下:

public class AppException : Exception
{
}

11. 在類的頂部宣告所有的成員變數,靜態變數宣告在最前面

// Correct
public class Account
{
public static string BankName;
public static decimal Reserves; public string Number {get; set;}
public DateTime DateOpened {get; set;}
public DateTime DateClosed {get; set;}
public decimal Balance {get; set;} // Constructor
public Account()
{
// ...
}
}

12.不推薦使用匈牙利命名法

不要給成員變數加任何字首(如、m、s_等等)。如果想要區分區域性變數和成員變數,可以使用this關鍵字。