天天看點

C#項目代碼規範

前言

   小菜就是小菜,幾個人搞出來的項目,讓公司大牛稍微看了下,最後送出了慘不忍睹四個字。命名各種各樣,五花八門,大寫英文、小寫英文、大寫拼音、小寫拼音、英文和拼音組合、字母和特殊字元(下劃線等)組合。這樣的項目代碼要是讓人來維護或者添加功能、查找bug會頭痛欲裂。也沒辦法誰叫咱們是小菜呢?而且程式員最頭疼的事:http://kb.cnblogs.com/page/192017/這篇知識博文裡,最終的結果居然是命名。是以……

  于是結合現有項目,通過部落格園檢視各種部落格文章,進行了一下總結。當然這樣做肯定是有不少好處的。

  1.友善代碼的交流和維護。

  2.不影響編碼的效率,不與大衆習慣沖突。

  3.使代碼更美觀、閱讀更友善。

  4.使代碼的邏輯更清晰、更易于了解。

在C#中通常使用的兩種編碼方式如下

  Camel(駝峰式): 大小寫形式-除了第一個單詞,所有單詞第一個字母大寫,其他字母小寫。

  Pascal(帕斯卡): 大小寫形式-所有單詞第一個字母大寫,其他字母小寫。

本文的C#代碼規範主要參考的是大神的規範:http://www.cnblogs.com/JimmyZhang/archive/2013/06/05/3118936.html,當然還有其他的,在此就不一一進行列舉了。

C#代碼規範

1、 類型(類、結構、委托、接口)、字段、屬性、方法、事件的命名

  優先考慮使用英文(盡量使用英文),如果實在沒有合适的英文進行描述,可以使用拼音,使用中文是不符合要求的。

2、不使用縮寫

  所有類型、字段、屬性、方法、事件盡量不使用縮寫,包括大家熟知的縮寫,例如msg。

3、不使用單個字母的變量

  不使用單個字母的變量, 像 i、m、n,使用index等來替換,用于循環疊代的變量除外。

C#項目代碼規範

4、用Tab作為縮進,并設定縮進大小為4

C#項目代碼規範

5、 注釋

類型、屬性、事件、方法、方法參數,根據需要添加注釋。

如果類型、屬性、事件、方法、方法參數的名稱已經是自解釋了,不需要加注釋;

否則需要添加注釋。

C#項目代碼規範

6、類型名稱和源檔案名稱一緻

當類型命名為Product時,其源檔案命名隻能是Product.cs。

7、所有命名空間、類型名稱使用Pascal風格

C#項目代碼規範

8、本地變量、方法參數名使用Camel風格(不使用下劃線)

紅色标記的為使用Camel風格的變量或者方法參數

C#項目代碼規範

9、在一個類中,各個方法需用一空行(最好是一個空行)

10、避免使用大檔案。如果一個檔案裡的代碼超過300-400行,必須考慮将代碼分開到不同的類中。同時避免寫太長的方法,如果一個方法代碼過長(暫時沒有明确指出方法的行數),應該考慮将其分解為不同的方法

11、一個方法隻完成一個任務。不要把多個任務組合到一個方法中,即使那些任務非常小

12、調用類型成員内部其他成員,需加this,調用父類成員需加base

C#項目代碼規範

13、不在代碼中使用具體的路徑和驅動器名。 使用相對路徑,并使路徑可複用

14、不要“捕捉了異常卻什麼也不做“。如果隐藏了一個異常,你将永遠不知道異常到底發生了沒有

15、如果if語句塊的内容隻有一行,可以不加花括号,并且最好和if語句位于同一行

C#項目代碼規範

16、類型内部的私有字段和受保護字段,使用Camel風格命名,但加“_”字首

C#項目代碼規範

17、類型成員的排列順序

類型成員的排列順序自上而下依次為:

字段:私有字段、受保護字段

屬性:私有屬性、受保護屬性、公有屬性

事件:私有事件、受保護事件、公有事件

構造函數:參數數量最多的構造函數,參數數量中等的構造函數,參數數量最少的構造函數

方法:重載方法的排列順序與構造函數相同,從參數數量最多往下至參數最少

C#項目代碼規範

18、委托和事件的命名

委托以EventHandler作為字尾命名,例如 SalesOutEventHandler。

事件以其對應的委托類型,去掉EventHandler字尾,并加上On字首構成。

示例代碼如下:

C#項目代碼規範

19、傳回bool類型的方法、屬性的命名

如果方法傳回的類型是bool類型,則其字首為Is,例如:IsHidden。

如果某個屬性的類型為bool類型,則其字首為Can,例如:CanHidden。

20、常見集合字尾類型命名

凡符合下表所列的集合類型,應添加相應的字尾。

C#項目代碼規範

21、常見字段、屬性命名

字段、屬性種類比較繁雜,是以僅列出最常用的幾項

C#項目代碼規範

總結

本文的規範,将會在接下來的新項目中進行參考使用,使用過程中遇到的問題或者意見,将會回報到本文,也恭請各位客官前來參閱,共同優化。