C#3.0規範

http://msdn.microsoft.com/en-us/vcsharp/aa336745.aspx

 

關於設計的聲明
1. 抽象類不應該聲明構造方法
2. 程序集應該具有強名稱
3. 避免使用空的接口
4. 避免在泛型類中使用過多的類型參數
5. 避免讓名字空間含有過少的類型
6. 避免使用 out類型的參數
7. 集合類應該實現泛型接口
8. 儘量使用基本類型作爲參數
9. 正確的聲明事件處理器,事件處理器不應該具有返回值
10.應該在名字空間裏面定義類型,而不是外面
11.不應該使用參數默認值(C#沒有參數默認值)
12.應該爲特性(特性)的構造方法參數定義訪問器,其名字跟構造方法參數僅首字母大小寫不一樣
13.不要捕捉普通的異常(即System.Exception)
14.不要在封閉類型中定義受保護的成員
15.不要在泛型類型中使用靜態成員
16.不要在封閉類型中定義虛成員
17.不要定義可見的(public/internal)實例域變量
18.不要直接暴露範型表
19.不要隱藏(使用或者不使用new)基類的方法
20.不要在成員的簽名(參數或者返回值)中嵌套泛型類
21.不要在引用類型中重載==操作符
22.不要使用引用(ref or out)傳遞類型
23.枚舉應該是 Int32 類型的
24.枚舉器應該是強類型的
25.枚舉應該具有0值
26.泛型類的方法應該提供類型參數
27.集合接口的實現中應該使用強類型的成員
28.自定義的異常應該實現異常類的四個標準構造方法
29.索引不應該是多維的
30.接口方法應該可以被子類調用
31.表應該是強類型的
32.用程序集版本標示程序集
33.使用CLSCompliant特性標示程序集
34.使用 System.Runtime.InteropServices.ComVisibleAttribute 特性標示程序集
35.使用 AttributeUsageAttribute 特性標示特性類
36.含有組合的枚舉應該使用FlagsAttribute特性標示,相反則不應該
37.成員(返回值或者參數)不應該暴露具體類型,儘量使用接口
38.將調用移到本地方法類(不是很理解)
39.嵌套類型不應該是可見的
40.可比較類型應該重寫 equals 等方法
41.在重寫+和-運算的時候應該同時重寫==操作符
42.屬性不應該是隻寫的
43.過時的成員應該使用ObsoleteAttribute特性標示,並提供相應的Message提示使用者
44.使用參數數組代替重複的參數
45.僅含有靜態成員的類型應該聲明爲封閉的
46.僅含有靜態成員的類型應該具有構造方法
47.使用string類型的uri參數的重載應調用系統的使用URI類型參數的重載
48.類型不應該從具體的類(已經過派生的類)繼承,比如異常類不應該從ApplicationException繼承,而應該從System.Exception繼承
49.含有可釋放成員的類型應該是可以釋放的(實現IDisposable接口)
50.使用了非託管資源的類型應該是可以釋放的(實現IDisposable接口)
51.Uri 參數不應該是string類型的
52.Uri 屬性不應該是string類型的
53.Uri 類型的返回值不應該是string類型的
54.在適當的時候使用事件
55.使用泛型的事件處理器實例
56.在適當的時候使用範型
57.索引器應該使用整數或者字符串類型的參數
58.在適當的時候使用屬性(而不是以Get或者Set開頭的方法)
59.對public的方法的參數應該在方法開頭處進行檢驗(比如是否爲null的檢驗)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章