標籤:des style blog http io ar os 使用 sp
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頁面中的代碼。
感謝閱讀,希望這篇文章能給你帶來協助!
c#命名,代碼規範