1.總是用屬性 (Property) 來代替可訪問的數據成員
2.在 readonly 和 const 之間,優先使用 readonly
3.在 as 和 強制類型轉換之間,優先使用 as 操作符
4.使用條件屬性 (Conditional Attributes) 來代替條件編譯語句 #if
5.總是為自定義類重載 ToString 方法
6.區別值類型和引用類型
7.使用不可變的值類型(Immutable Atomic Value Types)
8.在值類型中,確保0是一個合法的數據
9.理解 ReferenceEquals, static Equals, instance Equals 和 比較運算符(==)之間的關系
10.理解 GetHashCode方法的缺陷
11.在編寫循環時,優先使用 foreach.
12.在定義變量的時候就將其初始化
13.使用靜態構造函數來初始化靜態成員變量
14.用多個構造函數時,利用構造函數鏈
15.使用using和try/finally來處理資源的釋放
16.盡量避免產生資源垃圾
17.盡量避免使用裝箱(boxing)和拆箱(unboxing)
18.實現類的 Dispose 方法
19.在接口和繼承(Inheritance)之間,優先使用接口(interface)
20.區分接口和重載(overrides)
21.用委托(delegate)來實現回調(callback)
22.用事件(event)來定義外部接口
23.避免返回類內部成員的引用
24.使用元數據來控制程序
25.優先使用可序列化(serilizable)類型
26.對需要排序的對象實現IComparable和IComparer接口
27.避免使用 ICloneable接口
28.避免使用類型轉換操作符
29.只有當基類加入了與派生類中現有的函數名稱相同的函數時,才需要使用 new 操作符
30.盡量使用 CLS-Compliant
31.盡量編寫短少,簡單的函數
32.盡量編寫比較小的程序集(assembly)
33.限定類型的可見性(visibility)
34.編寫大粒度的web API
35.在使用事件時,優先繼承基類事件,而不是重新創建一個事件
36.多使用 framework 的運行時調試 (DEBUG, TRACE, EVENTLOG等)
37.使用.net標准的配置機制 38.使用並且在類中支持.net的數據綁定功能 (Data Binding)
39.使用.net的驗證機制 (Validation)
40.根據你的需求選擇正確的集合類(Collection)
41.在自定義結構中使用 DataSet
42.利用屬性(Attributes)
43.不要過度使用反射(Reflection)
44.創建完整的,應用程序特定的異常
45.盡可能多的考慮程序可能出現的異常,並作出處理
46.盡可能少的使用 Interop
47.盡量使用安全代碼 (safe code)
48.多多學習、使用外部工具和資源
49.准備使用C# 2.0
50.學習 ECMA 標准