來源:http://www.cnblogs.com/shangxia/p/3165672.html
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頁面中的程式碼。