推薦:C#命名規範12條
- 2021 年 5 月 28 日
- 筆記
編碼規範對於程序員而言尤為重要,有以下幾個原因:
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關鍵字。
命名規範的總結用表格表示如下:
與類相關:
與變量命名相關:
與ADO.NET有關:
與頁面控件有關: