c#命名規範彙總12條
前言
在剛學習c#的時候,在腦子根本就麼有命名規範這個概念,有了一定入門的基礎,也很難嚴格要求自己去規範程式碼的命名,工作後,發現自己的命名和其他人的命名總會有一些出入,總會鬧出一些尷尬的笑話,這裡彙總12條c#命名規範。
命名方式主要有兩種,
1.駝峰命名法:Camel,駝峰命名法跟帕斯卡命名法相似,只是首字母為小寫,如userName。因為看上去像駝峰,因此而得名。俗稱“小駝峰”。
2.帕斯卡命名法:帕斯卡命名法 即pascal命名法。做法是首字母大寫,如UserName,俗稱“大駝峰”。
還有一種不是很常見的:匈牙利命名法,該命名法是在每個變數名的前面加上若干表示資料型別的字元。基本原則是:變數名=屬性+型別+物件描述。如i表示int,所有i開頭的變數命都表示int型別。s表示String,所有變數命以s開頭的都表示String型別變數。
1.變數命名及定義
- 在簡單的迴圈語句中計數器變數使用 i, j, k, l, m, n
-
使用 Camel 命名規則
-私有變數也可以加_,如 _userName -
對於bool型屬性或者變數使用Is(is)作為字首,不要使用Flag字尾,例如應該使用IsDeleted,而不要使用DeleteFlag
-String.Format()代替字串拼接;
-長字串相加或拼接次數較多時,使用String.Builder;
-使用int.TryParse(),不使用int.Parse();
-不再迴圈內定義變數;
2.屬性命名
- 名稱應該為名詞及名詞短語
- 使用Pascal規則
3.列舉命名規則
- 對於 Enum 型別和值名稱使用 Pascal 大小寫。
- 少用縮寫。
- 不要在 Enum 型別名稱上使用 Enum 字尾。
- 對大多數 Enum 型別使用單數名稱,但是對作為位域的 Enum 型別使用複數名稱。
- 總是將 FlagsAttribute 新增到位域 Enum 型別。
4.方法命名
- 使用Pascal規則
- 對方法名採用一致的動詞/賓語或賓語/動詞順序。例如,將動詞置於前面時,所使用的名稱諸如 InsertWidget 和 InsertSprocket;將賓語置於前面時,所使用的名稱諸如 WidgetInsert 和 SprocketInsert。
- 推薦名稱應該為動詞或動詞短語.例如Save,SaveCustomer,而不要使用CustomerSave
5.集合命名
- 名稱應該為名詞及名詞短語
- 使用Pascal規則
- 名稱後面追加“Collection”或者加複數形式-s也行
6.自定義的屬性以Attribute結尾
程式碼如下:
public class AuthorAttribute : Attribute
{
}
7.自定義的異常以Exception結尾
程式碼如下:
public class AppException : Exception
{
}
8.介面命名
- 介面名稱應該為名詞及名詞短語或者描述其行為的形容詞,儘可能使用完整的詞. (Example IComponent or IEnumberable)
- 使用Pascal規則
-
使用字元I為字首,並緊跟一個大寫字母(即介面名的第一個字母大寫)
例如:
程式碼如下:
interface ICompare
{
int Compare();
}
9.類命名
- 類名應該為名詞及名詞短語,儘可能使用完整的詞.
- 使用Pascal規則
- 不要使用類字首 - 不要使用下劃線字元 (_)。
- 有時候需要提供以字母 I 開始的類名稱,雖然該類不是介面。只要 I 是作為類名稱組成部分的整個單詞的第一個字母,這便是適當的。例如,類名稱 IdentityStore 就是適當的。
-
在適當的地方,使用複合單詞命名派生的類。派生類名稱的第二個部分應當是基類的名稱。例如,ApplicationException 對於從名為 Exception 的類派生的類是適當的名稱,原因是 ApplicationException 是一種 Exception。請在應用該規則時進行合理的判斷。例如,Button 對於從 Control 派生的類是適當的名稱。儘管按鈕是一種控制元件,但是將 Control 作為類名稱的一部分將使名稱不必要地加長
-建立類時不要與內建類名相同,以免混淆
10 縮排
縮排會使程式碼邏輯更加清晰,巢狀更加明確。縮排時不要是使用空格鍵,使tab鍵。
11控制元件的命名
-Button:btn開頭
-Textbox:tb開頭
-Combox:cb開頭
-ContentMenuStrip:cms開頭
-CheckBox:ccb開頭
-DataGridView:dgv開頭
12事件命名
- event handlers命名使用 EventHandler 字尾
- 兩個引數分別使用 sender 及 e
- 使用Pascal規則
- 事件引數使用EventArgs 字尾
- 事件命名使用語法時態反映其激發的狀態,例如 Changed,Changing
- 考慮使用動詞命名. 變數命名
總結
其實沒有什麼可以好總結,良好的命名規範是作為碼農的最基本要求,是“做人的底線”。還有一些沒有指出的規範,希望能評論指出,謝謝。