資源大小:476.90 KB |
資源類型:文檔 |
下載積分: 0 |
|
|
|
資源介紹 |
|
c# 編碼規(guī)范
c# 編碼規(guī)范 1
1 命 名 約 定 4
1.1 常用命名術(shù)語(yǔ)說(shuō)明 4
1.2 名稱空間命名 4
1.3 類命名 4
異常類命名 5
1.4 局部變量命名 5
1.5 只讀靜態(tài)變量 5
1.6 類私有變量 5
1.7 屬性命名 5
1.8 接口命名 5
1.9 方法命名 6
參數(shù) 6
1.10 結(jié)構(gòu) 6
1.11 事件命名 6
1.12 枚舉類型 6
1.13 委托命名delegate 6
1.14 類對(duì)象命名 6
1.15 Attribute 7
1.16 控件命名 7
1.17 大小寫(xiě)敏感 8
1.18 縮寫(xiě)簡(jiǎn)寫(xiě)規(guī)則 8
1.19 使用統(tǒng)一的量尺 9
1.20 ID命名 9
2 代碼格式化 9
2.1 要達(dá)到的目的 9
2.2 {}的位置 9
2.3 if、if else的格式 10
2.4 for、foreach的格式 10
2.5 while/do-while的格式 11
2.6 switch的格式 11
2.7 try的格式 12
2.8 空格 13
2.9 在執(zhí)行統(tǒng)一任務(wù)的各個(gè)語(yǔ)句組之間插入一個(gè)空行。好的代碼應(yīng)由按邏輯順序排列的進(jìn)程或相關(guān)語(yǔ)句組構(gòu)成。 14
2.10 名稱空間寫(xiě)法 14
2.11 #region寫(xiě)法 14
3 代碼注釋 14
3.1 注釋的目的 14
3.2 函數(shù)體內(nèi)的注釋 14
3.3 對(duì)類文件進(jìn)行屬性注釋說(shuō)明 14
3.4 避免對(duì)很顯然易懂的語(yǔ)句進(jìn)行注釋說(shuō)明 15
3.5 代碼應(yīng)該能作到自我解釋代碼作用的功能。 15
3.6 邏輯點(diǎn)內(nèi)注釋 15
3.7 注釋來(lái)說(shuō)明何時(shí)可能出錯(cuò)和為什么出錯(cuò) 15
3.8 在編寫(xiě)代碼前進(jìn)行注釋 15
3.9 純色字符注釋行只用于主要注釋 15
3.10 避免形成注釋框 15
3.11 注釋那些部分 15
3.12 增強(qiáng)注釋的可讀性 17
3.13 對(duì)注釋進(jìn)行縮進(jìn),使之與后隨的語(yǔ)句對(duì)齊 17
3.14 請(qǐng)?jiān)诿總(gè)if語(yǔ)句的前面加上注釋 17
3.15 在每個(gè)switch語(yǔ)句的前面加上注釋 17
3.16 在每個(gè)循環(huán)的前面加上注釋 17
3.17 如果一個(gè)程序塊內(nèi)有多個(gè)尾隨注釋,每個(gè)注釋的縮進(jìn)應(yīng)該保持一致 18
4 錯(cuò)誤與異常處理 18
4.1 采用適當(dāng)?shù)娜罩緳C(jī)制來(lái)報(bào)告異常 18
4.2 只對(duì)錯(cuò)誤采用異常處理 18
4.3 不要使用異常實(shí)現(xiàn)來(lái)控制程序流程結(jié)構(gòu) 18
4.4 只捕捉特定的異常,而不是一般的異常。 18
4.5 別寫(xiě)太大的 try-catch 模塊 19
4.6 自定義異常類 19
5 類成員設(shè)計(jì) 20
5.1 設(shè)計(jì)類和方法時(shí),要達(dá)到下列目的 20
創(chuàng)建更加容易調(diào)試和維護(hù)的方法 20
創(chuàng)建具有強(qiáng)大內(nèi)聚力的類 20
創(chuàng)建高度專用的方法 20
創(chuàng)建松散連接的方法 20
盡量使方法具有獨(dú)立性 20
提高方法的扇入性 20
降低方法的扇出性 20
5.2 名稱空間引用 20
在代碼里,避免使用類似 System.Web.WebUIControls.Page 這樣完整的引用名稱,而應(yīng)在頂部用 using 聲明 System.Web.WebUIControls,而后以 Page進(jìn)行編碼 21
5.3 類設(shè)計(jì) 21
創(chuàng)建具有強(qiáng)大內(nèi)聚力的類 21
成員排列規(guī)則 21
自定義屬性類必須以 Attribute 為后綴,如 SomeAttribute 22
自定義錯(cuò)誤異常類必須以 Exception 為后綴,如SomeException。 22
在泛型(Generics)代碼里,類型參數(shù)均以 Type 為后綴的一個(gè)名詞來(lái)命名 22
每個(gè)類文件名應(yīng)盡量保持與內(nèi)部類名一致 23
盡量避免手動(dòng)去修改工具環(huán)境自動(dòng)生成的代碼 23
避免在一個(gè)類文件里放置多個(gè)類 23
一個(gè)類文件里應(yīng)該有且僅有一個(gè)命名空間,避免在一個(gè)類文件里包含多個(gè)不同的命名空間 23
避免在一個(gè)類文件里代碼超過(guò) 500 行(除去自動(dòng)生成的代碼) 23
盡量使用類庫(kù)包含程序的業(yè)務(wù)邏輯,以使應(yīng)用程序集代碼最小化 23
數(shù)據(jù)結(jié)構(gòu)里,應(yīng)該總是更傾向使用C#的范型generic 23
盡量縮小變量的作用域 23
5.4 接口設(shè)計(jì) 23
每個(gè)接口不應(yīng)當(dāng)有超過(guò)20個(gè)成員的情況,一般應(yīng)保持在12個(gè)左右 24
避免使用事件作為接口成員 24
避免使用抽象方法,而用接口替代 24
5.5 方法設(shè)計(jì) 24
創(chuàng)建松散連接和高度專用的方法 24
使所有方法都執(zhí)行專門的任務(wù) 24
盡量使方法成為自成一體的獨(dú)立方法 25
有返回值的方法必須在方法命名里包含對(duì)該返回值的信息描述,如GetObjectStat()。 25
局部變量的聲明,應(yīng)盡可能緊靠在它首次被使用的地方 25
一個(gè)方法里的代碼避免超過(guò) 25 行,最多不能超過(guò) 50 行(除去空行、注釋) 25
一行代碼最多不要超過(guò) 80 個(gè)字符 25
利用Debug類對(duì)每個(gè)假設(shè)應(yīng)進(jìn)行條件檢查 25
聲明變量或方法為public類型應(yīng)盡量謹(jǐn)慎,避免暴露過(guò)多不必要的細(xì)節(jié) 25
盡量不要在代碼內(nèi)進(jìn)行硬編碼,應(yīng)該用const將之聲明為常量變量 25
利用Debug類對(duì)每個(gè)假設(shè)應(yīng)進(jìn)行條件檢查 25
總使用以 0 為第一個(gè)數(shù)標(biāo)的數(shù)組 26
盡量不要使用 goto 語(yǔ)句 26
避免直接用方法作為條件語(yǔ)句里的Boolean值進(jìn)行判斷 26
對(duì)于引用類型的數(shù)組的初始化,必須總是用for或foreach語(yǔ)句循環(huán)初始化 26
應(yīng)該也盡量避免直接使用方法做為返回值,為每個(gè)方法賦予單個(gè)退出點(diǎn) 27
將某些信息(如錯(cuò)誤提示信息)直接傳遞給最終用戶 27
避免使用強(qiáng)制轉(zhuǎn)換,推薦使用as操作符進(jìn)行防御性轉(zhuǎn)換 27
當(dāng)需要?jiǎng)?chuàng)建一個(gè)長(zhǎng)字符串時(shí),推薦使用StringBuilder,而非string 27
this用法 27
避免使用不易理解的數(shù)字,用有意義的標(biāo)識(shí)來(lái)替代(枚舉和常量) 28
用參數(shù)在方法之間傳遞數(shù)據(jù) 28
5.6 屬性設(shè)計(jì) 28
5.7 事件設(shè)計(jì) 29
5.8 其他規(guī)則 29
6 項(xiàng)目環(huán)境設(shè)置 29
7 違背規(guī)范 31
查詢此規(guī)范詳細(xì)文檔建議使用文檔結(jié)構(gòu)圖形式(菜單 -> 視圖 -> 文檔結(jié)構(gòu)圖)
1 命 名 約 定
1.1 常用命名術(shù)語(yǔ)說(shuō)明
術(shù)語(yǔ) 說(shuō)明
Pascal 大小寫(xiě) 將標(biāo)識(shí)符的首字母和后面連接的每個(gè)單詞的首字母都大寫(xiě)?梢詫(duì)三字符或更多字符的標(biāo)識(shí)符使用 Pascal 大小寫(xiě)。例如:BackColor
Camel 大小寫(xiě) 標(biāo)識(shí)符的首字母小寫(xiě),而每個(gè)后面連接的單詞的首字母都大寫(xiě)。例如:backColor
1.2 名稱空間命名
NET Framework 類型使用點(diǎn)語(yǔ)法命名方案,該方案隱含了層次結(jié)構(gòu)的意思。此技術(shù)將相關(guān)類型分為不同的命名空間組,以便可以更容易地搜索和引用它們。全名的第一部分(最右邊的點(diǎn)之前的內(nèi)容)是命名空間名。全名的最后一部分是類型名。例如,System.Collections.ArrayList 表示 ArrayList 類型,該類型屬于 System.Collections 命名空間。System.Collections 中的類型可用于操作對(duì)象集合。此命名方案使擴(kuò)展 .NET Framework 的庫(kù)開(kāi)發(fā)人員可以輕松創(chuàng)建分層類型組,并用一致的、帶有提示性的方式對(duì)其進(jìn)行命名。庫(kù)開(kāi)發(fā)人員在創(chuàng)建命名空間的名稱時(shí)應(yīng)使用以下原則:
“公司名稱.技術(shù)名稱.軟件產(chǎn)品代號(hào)”或“公司名稱.產(chǎn)品技術(shù)代號(hào)”
例如,Nd.ClassLibrary.Charting 命名空間就表示Nd公司里的公用類庫(kù)里的Charting畫(huà)圖類庫(kù)。又如Nd.91Net.GovernmentInfoSharing表示Nd公司里的91平臺(tái)大項(xiàng)目里的政務(wù)信息發(fā)布與服務(wù)系統(tǒng) 。
又如: net91com.Movies.DataAccess 名稱空間標(biāo)識(shí) 91.COM 電影站的數(shù)據(jù)訪問(wèn)層程序集。
|
|
下載地址 |
|
|
|