目的
1.方便代碼的交流和維護。
2.不影響編碼的效率,不與大眾習慣沖突。
3.使代碼更美觀、閱讀更方便。
4.使代碼的邏輯更清晰、更易於理解。
在C#中通常使用的兩種編碼方式如下
Camel(駝峰式): 大小寫形式-除了第一個單詞,所有單詞第一個字母大寫,其他字母小寫。
Pascal(帕斯卡): 大小寫形式-所有單詞第一個字母大寫,其他字母小寫。
C#代碼規范
1、 類型(類、結構、委托、接口)、字段、屬性、方法、事件的命名
優先考慮使用英文(盡量使用英文),如果實在沒有合適的英文進行描述,可以使用拼音,使用中文是不符合要求的。
2、不使用縮寫
所有類型、字段、屬性、方法、事件盡量不使用縮寫,包括大家熟知的縮寫,例如msg。
3、不使用單個字母的變量
不使用單個字母的變量, 像 i、m、n,使用index等來替換,用於循環迭代的變量除外。
4、用Tab作為縮進,並設置縮進大小為4
5、 注釋
類型、屬性、事件、方法、方法參數,根據需要添加注釋。
如果類型、屬性、事件、方法、方法參數的名稱已經是自解釋了,不需要加注釋;
否則需要添加注釋。
6、類型名稱和源文件名稱一致
當類型命名為Product時,其源文件命名只能是Product.cs。
7、所有命名空間、類型名稱使用Pascal風格
8、本地變量、方法參數名使用Camel風格(不使用下划線)
紅色標記的為使用Camel風格的變量或者方法參數
9、在一個類中,各個方法需用一空行(最好是一個空行)
10、避免使用大文件。如果一個文件里的代碼超過300-400行,必須考慮將代碼分開到不同的類中。同時避免寫太長的方法,如果一個方法代碼過長(暫時沒有明確指出方法的行數),應該考慮將其分解為不同的方法
11、一個方法只完成一個任務。不要把多個任務組合到一個方法中,即使那些任務非常小
12、調用類型成員內部其他成員,需加this,調用父類成員需加base
13、不在代碼中使用具體的路徑和驅動器名。 使用相對路徑,並使路徑可復用
14、不要“捕捉了異常卻什么也不做“。如果隱藏了一個異常,你將永遠不知道異常到底發生了沒有
15、如果if語句塊的內容只有一行,可以不加花括號,並且最好和if語句位於同一行
16、類型內部的私有字段和受保護字段,使用Camel風格命名,但加“_”前綴
17、類型成員的排列順序
類型成員的排列順序自上而下依次為:
字段:私有字段、受保護字段
屬性:私有屬性、受保護屬性、公有屬性
事件:私有事件、受保護事件、公有事件
構造函數:參數數量最多的構造函數,參數數量中等的構造函數,參數數量最少的構造函數
方法:重載方法的排列順序與構造函數相同,從參數數量最多往下至參數最少
18、委托和事件的命名
委托以EventHandler作為后綴命名,例如 SalesOutEventHandler。
事件以其對應的委托類型,去掉EventHandler后綴,並加上On前綴構成。
示例代碼如下:
19、返回bool類型的方法、屬性的命名
如果方法返回的類型是bool類型,則其前綴為Is,例如:IsHidden。
如果某個屬性的類型為bool類型,則其前綴為Can,例如:CanHidden。
20、常見集合后綴類型命名
凡符合下表所列的集合類型,應添加相應的后綴。
21、常見字段、屬性命名
字段、屬性種類比較繁雜,因此僅列出最常用的幾項