天天看點

項目代碼風格要求(C#)

代碼風格沒有正确與否,重要的是整齊劃一,這是我拟的一份《項目代碼風格要求》,供大家參考。

PDF版下載下傳位址

1. C# 代碼風格要求

1.1注釋

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

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

當添加注釋時,添加方式如下圖所示:

項目代碼風格要求(C#)

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

優先考慮英文,如果英文沒有合适的單詞描述,可以使用拼音,使用中文是不符合要求的。

唯一可以使用中文的地方是枚舉的枚舉項,枚舉項實際已經不屬于本節标題的範疇了。這裡隻是放到一起說明,如下圖所示:

項目代碼風格要求(C#)

1.3 不使用縮寫

所有類型、方法、參數、變量的命名不得使用縮寫,包括大家熟知的縮寫,例如msg。

1.4 代碼使用半展開

第一步,打開Visual Studio,進入“工具”,“選項...”,如下圖所示:

項目代碼風格要求(C#)

第二步,進入“文本編輯器”,“C#”,“格式設定”,“新行”,取消掉右側所有複選框中的對号,如下圖所示:

項目代碼風格要求(C#)

第三步,點選“确定”,完成設定。

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

第一步,打開Visual Studio,進入“工具”,“選項...”,如下圖所示:

項目代碼風格要求(C#)

第二步,進入“文本編輯器”,“C#”,“制表符”,如下圖所示,設定制表符。

項目代碼風格要求(C#)

第三步,點選“确定”,完成設定。

1.6 一個.cs源檔案至多定義兩個類型

如果兩個類型的關系是緊密相關的,比如 産品、産品類型,此時Product類,和ProductType枚舉可以定義在同一個Product.cs檔案中。

但不能在一個.cs檔案中出現兩個不相關的類型定義,例如将 Product類和Reseller類(分銷商)定義在一個BasicInfo.cs檔案中。

1.7 類型名稱和源檔案名稱必須一緻

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

1.8 所有命名空間、類型名稱使用Pascal風格(單詞首字母大寫)

如下圖所示,紅色标記的為使用Pascal風格的類型:

項目代碼風格要求(C#)

注意ProductType是私有類型,不管類型是公有的還是私有的,其命名總是采用Pascal風格。

1.9 本地變量、方法參數名稱使用Camel風格(首字母小寫,其後每個單詞的首字母大寫)

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

項目代碼風格要求(C#)

1.10 私有方法、受保護方法,仍使用Pascal風格命名

示例代碼如下:

項目代碼風格要求(C#)

1.11 如果if語句内容隻有一行,可以不加花括号,但是必須和if語句位于同一行

範例1.9 中的if判斷實際上與下面的語句是等效的:

項目代碼風格要求(C#)

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

示例代碼如下:

項目代碼風格要求(C#)

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

代碼示例如下:

項目代碼風格要求(C#)

1.14 不能出現公有字段

如果需要公有字段,使用屬性進行包裝。

1.15 類型成員的排列順序

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

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

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

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

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

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

項目代碼風格要求(C#)

1.16 委托和事件的命名

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

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

例如,對于SalesOutEventHandler委托類型的事件,其事件名稱為:OnSalesOut。

示例代碼如下:

項目代碼風格要求(C#)

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

如果方法傳回的類型為bool類型,則其字首為Is、Can或者 Try,例如:

項目代碼風格要求(C#)

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标記有層次,那麼代碼也要有層次

下面是書寫符合要求的例子:

項目代碼風格要求(C#)

下面是書寫 不符合要求 的例子:

項目代碼風格要求(C#)

2.2 所有标記必須閉合

示例代碼如下:

項目代碼風格要求(C#)

2.3 如果标記中間代碼超過20行,則應在标記末尾加注辨別

标注方式如下:

項目代碼風格要求(C#)

3. CSS 代碼風格要求

3.1 代碼使用半展開

設定方法參考1.4節。

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

設定方法參考1.5節。

3.3 代碼注釋

注釋主要說明該樣式應用于頁面的哪個部分,而非說明樣式的應用效果,代碼注釋風格如下所示:

項目代碼風格要求(C#)

3.4 代碼編寫

每一個樣式設定必須獨占一行,不能位于同一行,下面是符合要求的寫法:

項目代碼風格要求(C#)

下面是 不符合要求 的寫法:

項目代碼風格要求(C#)

3.5 嵌入式樣式的比例不超過樣式表代碼總量的10%

嵌入式樣式為直接寫在HTML标記内部的樣式,如下圖所示:

項目代碼風格要求(C#)

3.6 内聯式樣式的比例不超過樣式表代碼總量的30%

内聯式樣式為寫在<head></head>中的樣式,如下圖所示:

項目代碼風格要求(C#)

内聯式樣式,不能 寫在<body></body>之間。

3.7 外聯式樣式表的比例不少于樣式表代碼總量的60%

外聯式樣式表為寫在.css檔案中的樣式,通過link引入到XHTML頁面中,如下圖所示:

項目代碼風格要求(C#)

4. JavaScript 代碼風格要求

4.1 代碼使用半展開

設定方法參考1.4節。

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

設定方法參考1.5節。

4.3 代碼注釋

代碼注釋需要說明“函數功能”、“入口參數”、“傳回值”,注釋範例如下:

項目代碼風格要求(C#)

其中第一行說明函數功能;第二行說明入口參數;最後一行說明傳回值

4.4 不得出現内嵌式代碼

内嵌式代碼是指寫在XHTML标記中的JavaScript代碼,下面的寫法是 不符合要求 的:

項目代碼風格要求(C#)

4.5 内聯式代碼占JavaScript的總量不得超過40%

内聯式代碼是指寫在<head />或者<body />之間的代碼:

項目代碼風格要求(C#)

4.6 外聯式代碼占JavaScript的總量至少為60%

外聯式代碼指寫在單獨的.js檔案中,然後通過script标記連接配接到XHTML頁面中的代碼。

項目代碼風格要求(C#)

感謝閱讀,希望這篇文章能給你帶來幫助!

項目代碼風格要求(C#)