C#項目代碼規範
.Net 項目代碼風格要求
PDF版下載下傳:項目代碼風格要求V1.0.pdf
代碼風格沒有正确與否,重要的是整齊劃一,這是我拟的一份《.Net 項目代碼風格要求》,供大家參考。
1. C# 代碼風格要求
1.1注釋
類型、屬性、事件、方法、方法參數,根據需要添加注釋。
如果類型、屬性、事件、方法、方法參數的名稱已經是自解釋了,不需要加注釋;否則需要添加注釋。
當添加注釋時,添加方式如下圖所示:
1.2 類型(類、結構、委托、接口)、字段、屬性、方法、事件的命名
優先考慮英文,如果英文沒有合适的單詞描述,可以使用拼音,使用中文是不符合要求的。
唯一可以使用中文的地方是枚舉的枚舉項,枚舉項實際已經不屬于本節标題的範疇了。這裡隻是放到一起說明,如下圖所示:
1.3 不使用縮寫
所有類型、方法、參數、變量的命名不得使用縮寫,包括大家熟知的縮寫,例如msg。
1.4 代碼使用半展開
第一步,打開Visual Studio,進入“工具”,“選項...”,如下圖所示:
第二步,進入“文本編輯器”,“C#”,“格式設定”,“新行”,取消掉右側所有複選框中的對号,如下圖所示:
第三步,點選“确定”,完成設定。
1.5 使用Tab作為縮進,并設定縮進大小為4
第一步,打開Visual Studio,進入“工具”,“選項...”,如下圖所示:
第二步,進入“文本編輯器”,“C#”,“制表符”,如下圖所示,設定制表符。
第三步,點選“确定”,完成設定。
1.6 一個.cs源檔案至多定義兩個類型
如果兩個類型的關系是緊密相關的,比如 産品、産品類型,此時Product類,和ProductType枚舉可以定義在同一個Product.cs檔案中。
但不能在一個.cs檔案中出現兩個不相關的類型定義,例如将 Product類和Reseller類(分銷商)定義在一個BasicInfo.cs檔案中。
1.7 類型名稱和源檔案名稱必須一緻
當類型命名為Product時,其源檔案命名隻能是Product.cs。
1.8 所有命名空間、類型名稱使用Pascal風格(單詞首字母大寫)
如下圖所示,紅色标記的為使用Pascal風格的類型:
注意ProductType是私有類型,不管類型是公有的還是私有的,其命名總是采用Pascal風格。
1.9 本地變量、方法參數名稱使用Camel風格(首字母小寫,其後每個單詞的首字母大寫)
紅色标記的為使用Camel風格的變量或者方法參數:
1.10 私有方法、受保護方法,仍使用Pascal風格命名
示例代碼如下:
1.11 如果if語句内容隻有一行,可以不加花括号,但是必須和if語句位于同一行
範例1.9 中的if判斷實際上與下面的語句是等效的:
1.12 調用類型内部其他成員,需加this;調用父類成員,需加base
示例代碼如下:
1.13 類型内部的私有和受保護字段,使用Camel風格命名,但加“_”字首
代碼示例如下:
1.14 不能出現公有字段
如果需要公有字段,使用屬性進行包裝。
1.15 類型成員的排列順序
類型成員的排列順序自上而下依次為:
字段:私有字段、受保護字段
屬性:私有屬性、受保護屬性、公有屬性
事件:私有事件、受保護事件、公有事件
構造函數:參數數量最多的構造函數,參數數量中等的構造函數,參數數量最少的構造函數
方法:重載方法的排列順序與構造函數相同,從參數數量最多往下至參數最少。
1.16 委托和事件的命名
委托以EventHandler作為字尾命名,例如 SalesOutEventHandler。
事件以其對應的委托類型,去掉EventHandler字尾,并加上On字首構成。
例如,對于SalesOutEventHandler委托類型的事件,其事件名稱為:OnSalesOut。
示例代碼如下:
1.17 傳回bool類型的方法、屬性的命名
如果方法傳回的類型為bool類型,則其字首為Is、Can或者 Try,例如:
1.18 常見集合類型字尾命名
凡符合下表所列的集合類型,應添加相應的字尾。
說明 | 字尾 | 示例 |
數組 | Array | int[] productArray |
清單 | List | List<Product> productList |
DataTable/HashTable | Table | HashTable productTable |
字典 | Dictionary | Dictionay<string,string> productDictionary |
EF中的DbSet /DataSet | Set | DbSet<Product> productSet |
1.19 常見字尾命名
凡符合下表所列的局部變量、方法參數、字段、屬性,均需添加相應的字尾。
說明 | 字尾 | 示例 | 示例說明 |
費用相關 | Cost | ShipCost | 運輸費 |
價格相關 | Price | ProductUnitPrice | 産品單價 |
消息相關 | Message(棄用Note) | SuccessMessage | 成功消息 |
日期相關 | Date(棄用Time) | OrderDate | 下單日期 |
計數、數量相關 | Count(棄用Time) | LoginCount | 登入次數 |
連結位址相關 | Url | BlogUrl | 部落格連結 |
圖檔相關 | Image | SignImage | 簽名圖檔 |
金額相關 | Amount | PrepaidAmount | 預付款 |
點數、積分相關 | Point | MemberPoint | 會員積分 |
記錄、日志相關 | Record(棄用Log) | ErrorRecord | 錯誤記錄 |
配置相關 | Config | DataBaseConfig | 資料庫配置 |
狀态相關 | Status | OrderStatus | 訂單狀态 |
模式、方式相關 | Mode | OpenMode | 打開方式 |
種類相關 | Category / Type 二選一 | UserCategory | 使用者種類 |
工廠類相關 | Factory | ConnectionFactory | 連接配接工廠 |
啟用相關 | Enabled | ExportEnabled | 開啟導出 |
流相關 | Stream | UploadStream | 上傳流 |
讀取器相關 | Reader | ExcelReader | Excel讀取器 |
寫入器相關 | Writer | ExcelWriter | Excel寫入器 |
擴充卡相關 | Adapter | IntroOPAdapter | IntroOP擴充卡 |
提供器相關 | Provider | MemebershipProvider | 會員資訊提供器 |
包裝器相關 | Wrapper | ProductWrapper | Product包裝器 |
連接配接相關 | Connection | ExcelConnection | Excel連接配接 |
1.20 常見類型命名
凡存在下表中的類型,需采用下表指定的名稱命名。
類型 | 命名 | 類型 | 命名 |
客戶 | Customer | 分銷商 | Reseller |
零售商 | Retailer | 經銷商/批發商 | Dealer |
使用者 | UserInfo(User為資料庫關鍵字) | 訂單 | OrderInfo(Order為資料庫關鍵字) |
供應商 | Supplier | 管理者 | Admin |
密碼 | Password | 會員 | Member |
評論 | Remark(棄用Comment) | 文章 | Article |
新聞 | News | 發票 | Invoice |
導入 | Import | 導出 | Export |
公司、企業 | Company(棄用Enterprise) | 産品 | Product |
省份 | Province | 城市 | City |
區縣 | District | 位址 | Address |
角色 | Role(棄用Group) | 權限 | Authority(棄用Permission) |
倉庫 | Warehouse | 工廠 | Plant |
登入 | Login(棄用SignIn) | 登出 | LogOut(棄用SignOut) |
建立 | Create(棄用Add) | 編輯 | Edit |
更新 | Update | 删除 | Remove(棄用Delete) |
照片 | Photo | 圖檔 | Image |
1.21 常見字段、屬性命名
字段、屬性種類比較繁雜,是以僅列出最常用的幾項。
類型 | 名稱 | 類型 | 名稱 |
Id(int型) | Id(“d”小寫,棄用ID) | GuidId(Guid型) | Id |
Name | 名稱 | Title | 标題 |
Remark | 備注、描述(棄用Memo、Description) | Category | 種類(棄用Class、Type) |
Linkman | 聯系人 |
2. XHTML 代碼風格要求
2.1 如果XHTML标記有層次,那麼代碼也要有層次
下面是書寫符合要求的例子:
下面是書寫 不符合要求 的例子:
2.2 所有标記必須閉合
示例代碼如下:
2.3 如果标記中間代碼超過20行,則應在标記末尾加注辨別
标注方式如下:
3. CSS 代碼風格要求
3.1 代碼使用半展開
設定方法參考1.4節。
3.2 使用Tab作為縮進,并設定縮進大小為4
設定方法參考1.5節。
3.3 代碼注釋
注釋主要說明該樣式應用于頁面的哪個部分,而非說明樣式的應用效果,代碼注釋風格如下所示:
3.4 代碼編寫
每一個樣式設定必須獨占一行,不能位于同一行,下面是符合要求的寫法:
下面是 不符合要求 的寫法:
3.5 嵌入式樣式的比例不超過樣式表代碼總量的10%
嵌入式樣式為直接寫在HTML标記内部的樣式,如下圖所示:
3.6 内聯式樣式的比例不超過樣式表代碼總量的30%
内聯式樣式為寫在<head></head>中的樣式,如下圖所示:
内聯式樣式,不能 寫在<body></body>之間。
3.7 外聯式樣式表的比例不少于樣式表代碼總量的60%
外聯式樣式表為寫在.css檔案中的樣式,通過link引入到XHTML頁面中,如下圖所示:
4. JavaScript 代碼風格要求
4.1 代碼使用半展開
設定方法參考1.4節。
4.2 使用Tab作為縮進,并設定縮進大小為4
設定方法參考1.5節。
4.3 代碼注釋
代碼注釋需要說明“函數功能”、“入口參數”、“傳回值”,注釋範例如下:
其中第一行說明函數功能;第二行說明入口參數;最後一行說明傳回值
4.4 不得出現内嵌式代碼
内嵌式代碼是指寫在XHTML标記中的JavaScript代碼,下面的寫法是 不符合要求 的:
4.5 内聯式代碼占JavaScript的總量不得超過40%
内聯式代碼是指寫在<head />或者<body />之間的代碼:
4.6 外聯式代碼占JavaScript的總量至少為60%
外聯式代碼指寫在單獨的.js檔案中,然後通過script标記連接配接到XHTML頁面中的代碼。
感謝閱讀,希望這篇文章能給你帶來幫助!
出處:http://www.cnblogs.com/JimmyZhang/archive/2013/06/05/3118936.html