接口命名規范:
1.大寫約定
PascalCasing:帕斯卡命名法,每個單詞首字母大寫
應用場景:命名空間、類型、接口、方法、屬性、事件、字段、枚舉、枚舉值
eg:HtmlTag IOStream
注意:兩個字母的縮略詞,兩個字母都要大寫 IOStream
camelCasing:首字母小寫(雙字母縮寫都小寫)
應用場景:參數
eg:htmlTag ioStream
2.通用命名約定
word選擇:
選擇易讀標識符名稱
可讀性高於簡潔性
不要用_、連字符或數字
不要用匈牙利表示法
避免和編程關鍵字沖突的標識符
使用縮寫和首字母縮寫詞:
不要在標識符中使用縮寫形式或縮略形式
不要使用不常用縮寫形式
eg:GetWindow 非 GetWin
避免特定於語言的名稱:
選擇有意義的名稱,eg:GetLength 非 GetInt
為現有API的新版本命名:
使用舊版API類似的名稱
優先用后綴體現新版本
考慮使用全新但有意義的標識符
在添加任何有意義的后綴都不合適的情況下,用數字后綴指示新版本
不要用"Ex"(或類似)表示不同版本
3.程序集和DLL的名稱
為程序集DLL選擇使人聯想到大量功能的名稱
4.命名空間的名字
規則:<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]
用一個公司作為前綴
第二級名稱使用穩定的、與版本無關的名稱
使用PascalCasing命名法
適當使用復數形式
不要引入泛型類型名稱、如:Element、Node、Log和Message等等
應用程序模塊命名空間
基礎結構命名空間
核心命名空間(System、System.IO、System.Net):不要使用與核心命名空間沖突的類型名稱
技術命名空間組:兩個命名空間節點一致,屬於同一單一技術的類型之間不能相互沖突
5.類、結構和接口的名稱
使用PascalCasing命名法
用形容詞短語命名接口
不要給類名加前綴(eg:C)
考慮用基類名稱作為派生類的結尾
接口名稱加"I"
確保類和接口的名稱區別僅在於前綴"I"
泛型參數名稱:
用描述性名稱命名泛型參數,可用T作為參數名稱
用T參數名稱的前綴
常見類型名稱:
屬性:加Attribute
委托:委托名稱中加后綴:EventHandler
使用委托的方法加后綴:Callback
不要加:Delegate
事件參數:加后綴:EventArgs
枚舉:不要加enum或flag后綴
異常:加Exception后綴
字典:加Dictionary
集合:Collection
流:加后綴Stream
許可:加后綴 Permission
命名枚舉:
PascalCasing命名法
單數類型的名稱
不要Enum、Flag等后綴
不要前綴
6.類型成員名稱
方法名稱:謂詞或謂詞短語表示
屬性名稱:
名詞或形容詞、
不要用與Get方法匹配的屬性、
用復數形式,而不是list后綴
用肯定語氣命名bool值,或者 Is 、Can 或 Has 前綴
用屬性類型來命名
事件名稱:
用謂詞或謂詞短語命名
用現在時或過去時表示事件先后概念,用ing或ed后綴,而不是Before或After
用EventHandler后綴來命名事件,用EventArgs 命名參數
事件中使用兩個名為 object sender 和 ClickedEventArgs e 的參數
字段名稱:
用PascalCasing命名
用名詞、名詞短語或形容詞命名字段
不要使用前綴
7.命名參數
用camelCasing命名
用描述性參數名稱
用基於參數含義而非參數類型的名稱
命名運算符重載參數:
參數無意義: 二元運算符用left和right;一元運算符用value
8.命名資源
用PascalCasing命名
用描述性標識符而非簡短標識符
不要使用特定關鍵字
只能使用字母、數字、下划線
異常消息資源命名:ArgumentExceptionInvalidName