前言 小菜就是小菜,幾個人搞出來的項目,讓公司大牛稍微看了下,最后送出了慘不忍睹四個字。命名各種各樣,五花八門,大寫英文、小寫英文、大寫拼音、小寫拼音、英文和拼音組合、字母和特殊字符(下劃線等)組合。這樣的項目代碼要是讓人來維護或者添加功能、查找bug會頭痛欲裂。也沒辦法誰叫咱們是小菜呢?而且程序員最頭疼的事:http://kb.cnblogs.com/page/192017/這篇知識博文里,最終的結(jié)果居然是命名。所以…… 于是結(jié)合現(xiàn)有項目,通過博客園查看各種博客文章,進行了一下總結(jié)。當(dāng)然這樣做肯定是有不少好處的。 1.方便代碼的交流和維護。 2.不影響編碼的效率,不與大眾習(xí)慣沖突。 3.使代碼更美觀、閱讀更方便。 4.使代碼的邏輯更清晰、更易于理解。 在C#中通常使用的兩種編碼方式如下 Camel(駝峰式): 大小寫形式-除了第一個單詞,所有單詞第一個字母大寫,其他字母小寫。 本文的C#代碼規(guī)范主要參考的是大神的規(guī)范:http://www.cnblogs.com/JimmyZhang/archive/2013/06/05/3118936.html,當(dāng)然還有其他的,在此就不一一進行列舉了。 C#代碼規(guī)范 1、 類型(類、結(jié)構(gòu)、委托、接口)、字段、屬性、方法、事件的命名 優(yōu)先考慮使用英文(盡量使用英文),如果實在沒有合適的英文進行描述,可以使用拼音,使用中文是不符合要求的。
2、不使用縮寫 所有類型、字段、屬性、方法、事件盡量不使用縮寫,包括大家熟知的縮寫,例如msg。
3、不使用單個字母的變量 不使用單個字母的變量, 像 i、m、n,使用index等來替換,用于循環(huán)迭代的變量除外。
4、用Tab作為縮進,并設(shè)置縮進大小為4
5、 注釋 類型、屬性、事件、方法、方法參數(shù),根據(jù)需要添加注釋。 如果類型、屬性、事件、方法、方法參數(shù)的名稱已經(jīng)是自解釋了,不需要加注釋; 否則需要添加注釋。
6、類型名稱和源文件名稱一致 當(dāng)類型命名為Product時,其源文件命名只能是Product.cs。
7、所有命名空間、類型名稱使用Pascal風(fēng)格
8、本地變量、方法參數(shù)名使用Camel風(fēng)格(不使用下劃線) 紅色標(biāo)記的為使用Camel風(fēng)格的變量或者方法參數(shù)
9、在一個類中,各個方法需用一空行(最好是一個空行)
10、避免使用大文件。如果一個文件里的代碼超過300-400行,必須考慮將代碼分開到不同的類中。同時避免寫太長的方法,如果一個方法代碼過長(暫時沒有明確指出方法的行數(shù)),應(yīng)該考慮將其分解為不同的方法
11、一個方法只完成一個任務(wù)。不要把多個任務(wù)組合到一個方法中,即使那些任務(wù)非常小
12、調(diào)用類型成員內(nèi)部其他成員,需加this,調(diào)用父類成員需加base
13、不在代碼中使用具體的路徑和驅(qū)動器名。 使用相對路徑,并使路徑可復(fù)用
14、不要“捕捉了異常卻什么也不做“。如果隱藏了一個異常,你將永遠(yuǎn)不知道異常到底發(fā)生了沒有
15、如果if語句塊的內(nèi)容只有一行,可以不加花括號,并且最好和if語句位于同一行
16、類型內(nèi)部的私有字段和受保護字段,使用Camel風(fēng)格命名,但加“_”前綴
17、類型成員的排列順序 類型成員的排列順序自上而下依次為: 字段:私有字段、受保護字段 屬性:私有屬性、受保護屬性、公有屬性 事件:私有事件、受保護事件、公有事件 構(gòu)造函數(shù):參數(shù)數(shù)量最多的構(gòu)造函數(shù),參數(shù)數(shù)量中等的構(gòu)造函數(shù),參數(shù)數(shù)量最少的構(gòu)造函數(shù) 方法:重載方法的排列順序與構(gòu)造函數(shù)相同,從參數(shù)數(shù)量最多往下至參數(shù)最少
18、委托和事件的命名 委托以EventHandler作為后綴命名,例如 SalesOutEventHandler。 事件以其對應(yīng)的委托類型,去掉EventHandler后綴,并加上On前綴構(gòu)成。 示例代碼如下:
19、返回bool類型的方法、屬性的命名 如果方法返回的類型是bool類型,則其前綴為Is,例如:IsHidden。 如果某個屬性的類型為bool類型,則其前綴為Can,例如:CanHidden。
20、常見集合后綴類型命名 凡符合下表所列的集合類型,應(yīng)添加相應(yīng)的后綴。
21、常見字段、屬性命名 字段、屬性種類比較繁雜,因此僅列出最常用的幾項
總結(jié) 本文的規(guī)范,將會在接下來的新項目中進行參考使用,使用過程中遇到的問題或者意見,將會反饋到本文,也恭請各位客官前來參閱,共同優(yōu)化。 |
|