电竞比分网-中国电竞赛事及体育赛事平台

分享

C#項(xiàng)目代碼規(guī)范

 賈朋亮博客 2014-04-03

前言

   小菜就是小菜,幾個(gè)人搞出來(lái)的項(xiàng)目,讓公司大牛稍微看了下,最后送出了慘不忍睹四個(gè)字。命名各種各樣,五花八門(mén),大寫(xiě)英文、小寫(xiě)英文、大寫(xiě)拼音、小寫(xiě)拼音、英文和拼音組合、字母和特殊字符(下劃線(xiàn)等)組合。這樣的項(xiàng)目代碼要是讓人來(lái)維護(hù)或者添加功能、查找bug會(huì)頭痛欲裂。也沒(méi)辦法誰(shuí)叫咱們是小菜呢?而且程序員最頭疼的事:http://kb.cnblogs.com/page/192017/這篇知識(shí)博文里,最終的結(jié)果居然是命名。所以……

  于是結(jié)合現(xiàn)有項(xiàng)目,通過(guò)博客園查看各種博客文章,進(jìn)行了一下總結(jié)。當(dāng)然這樣做肯定是有不少好處的。

  1.方便代碼的交流和維護(hù)。

  2.不影響編碼的效率,不與大眾習(xí)慣沖突。

  3.使代碼更美觀(guān)、閱讀更方便。

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

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

  Camel(駝峰式): 大小寫(xiě)形式-除了第一個(gè)單詞,所有單詞第一個(gè)字母大寫(xiě),其他字母小寫(xiě)。
  Pascal(帕斯卡): 大小寫(xiě)形式-所有單詞第一個(gè)字母大寫(xiě),其他字母小寫(xiě)。

本文的C#代碼規(guī)范主要參考的是大神的規(guī)范:http://www.cnblogs.com/JimmyZhang/archive/2013/06/05/3118936.html,當(dāng)然還有其他的,在此就不一一進(jìn)行列舉了。

C#代碼規(guī)范

1、 類(lèi)型(類(lèi)、結(jié)構(gòu)、委托、接口)、字段、屬性、方法、事件的命名

  優(yōu)先考慮使用英文(盡量使用英文),如果實(shí)在沒(méi)有合適的英文進(jìn)行描述,可以使用拼音,使用中文是不符合要求的。

 

2、不使用縮寫(xiě)

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

 

3、不使用單個(gè)字母的變量

  不使用單個(gè)字母的變量, 像 i、m、n,使用index等來(lái)替換,用于循環(huán)迭代的變量除外。

 

 

4、用Tab作為縮進(jìn),并設(shè)置縮進(jìn)大小為4

 

5、 注釋

類(lèi)型、屬性、事件、方法、方法參數(shù),根據(jù)需要添加注釋。

如果類(lèi)型、屬性、事件、方法、方法參數(shù)的名稱(chēng)已經(jīng)是自解釋了,不需要加注釋?zhuān)?/p>

否則需要添加注釋。

 

6、類(lèi)型名稱(chēng)和源文件名稱(chēng)一致

當(dāng)類(lèi)型命名為Product時(shí),其源文件命名只能是Product.cs。

 

7、所有命名空間、類(lèi)型名稱(chēng)使用Pascal風(fēng)格

 

8、本地變量、方法參數(shù)名使用Camel風(fēng)格(不使用下劃線(xiàn))

紅色標(biāo)記的為使用Camel風(fēng)格的變量或者方法參數(shù)

 

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

 

10、避免使用大文件。如果一個(gè)文件里的代碼超過(guò)300-400行,必須考慮將代碼分開(kāi)到不同的類(lèi)中。同時(shí)避免寫(xiě)太長(zhǎng)的方法,如果一個(gè)方法代碼過(guò)長(zhǎng)(暫時(shí)沒(méi)有明確指出方法的行數(shù)),應(yīng)該考慮將其分解為不同的方法

 

11、一個(gè)方法只完成一個(gè)任務(wù)。不要把多個(gè)任務(wù)組合到一個(gè)方法中,即使那些任務(wù)非常小

 

12、調(diào)用類(lèi)型成員內(nèi)部其他成員,需加this,調(diào)用父類(lèi)成員需加base

 

13、不在代碼中使用具體的路徑和驅(qū)動(dòng)器名。 使用相對(duì)路徑,并使路徑可復(fù)用

 

14、不要“捕捉了異常卻什么也不做“。如果隱藏了一個(gè)異常,你將永遠(yuǎn)不知道異常到底發(fā)生了沒(méi)有

 

15、如果if語(yǔ)句塊的內(nèi)容只有一行,可以不加花括號(hào),并且最好和if語(yǔ)句位于同一行

 

16、類(lèi)型內(nèi)部的私有字段和受保護(hù)字段,使用Camel風(fēng)格命名,但加“_”前綴

 

 

17、類(lèi)型成員的排列順序

類(lèi)型成員的排列順序自上而下依次為:

字段:私有字段、受保護(hù)字段

屬性:私有屬性、受保護(hù)屬性、公有屬性

事件:私有事件、受保護(hù)事件、公有事件

構(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。

事件以其對(duì)應(yīng)的委托類(lèi)型,去掉EventHandler后綴,并加上On前綴構(gòu)成。

示例代碼如下:

 

19、返回bool類(lèi)型的方法、屬性的命名

如果方法返回的類(lèi)型是bool類(lèi)型,則其前綴為Is,例如:IsHidden。

如果某個(gè)屬性的類(lèi)型為bool類(lèi)型,則其前綴為Can,例如:CanHidden。

 

20、常見(jiàn)集合后綴類(lèi)型命名

凡符合下表所列的集合類(lèi)型,應(yīng)添加相應(yīng)的后綴。

 

21、常見(jiàn)字段、屬性命名

字段、屬性種類(lèi)比較繁雜,因此僅列出最常用的幾項(xiàng)

 

總結(jié)

本文的規(guī)范,將會(huì)在接下來(lái)的新項(xiàng)目中進(jìn)行參考使用,使用過(guò)程中遇到的問(wèn)題或者意見(jiàn),將會(huì)反饋到本文,也恭請(qǐng)各位客官前來(lái)參閱,共同優(yōu)化。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多