提高C#編程水平的50個(gè)要點(diǎn)

        1.區(qū)別值類(lèi)型和引用類(lèi)型

  2.使用不可變的值類(lèi)型(Immutable Atomic Value Types)

  3.在值類(lèi)型中,確保0是一個(gè)合法的數(shù)據(jù)

     4.理解 ReferenceEquals, static Equals, instance Equals 和 比較運(yùn)算符(==)之間的關(guān)系

        5 .理解 GetHashCode方法的缺陷

     6.總是用屬性 (Property) 來(lái)代替可訪問(wèn)的數(shù)據(jù)成員

  7.在 readonly 和 const 之間,優(yōu)先使用 readonly

  8.在 as 和 強(qiáng)制類(lèi)型轉(zhuǎn)換之間,優(yōu)先使用 as 操作符

    9.使用條件屬性 (Conditional Attributes) 來(lái)代替條件編譯語(yǔ)句 #if

   10.總是為自定義類(lèi)重載 ToString 方法

    11.在編寫(xiě)循環(huán)時(shí),優(yōu)先使用 foreach.

  12.在定義變量的時(shí)候就將其初始化

  13.使用靜態(tài)構(gòu)造函數(shù)來(lái)初始化靜態(tài)成員變量

  14.用多個(gè)構(gòu)造函數(shù)時(shí),利用構(gòu)造函數(shù)鏈

  15.使用using和try/finally來(lái)處理資源的釋放

  16.盡量避免產(chǎn)生資源垃圾

  17.盡量避免使用裝箱(boxing)和拆箱(unboxing)

  18.實(shí)現(xiàn)類(lèi)的 Dispose 方法

  19.在接口和繼承(Inheritance)之間,優(yōu)先使用接口(interface)

  20.區(qū)分接口和重載(overrides)

  21.用委托(delegate)來(lái)實(shí)現(xiàn)回調(diào)(callback)

  22.用事件(event)來(lái)定義外部接口

  23.避免返回類(lèi)內(nèi)部成員的引用

  24.使用元數(shù)據(jù)來(lái)控制程序

  25.優(yōu)先使用可序列化(serilizable)類(lèi)型

  26.對(duì)需要排序的對(duì)象實(shí)現(xiàn)IComparable和IComparer接口

  27.避免使用 ICloneable接口

  28.避免使用類(lèi)型轉(zhuǎn)換操作符

  29.只有當(dāng)基類(lèi)加入了與派生類(lèi)中現(xiàn)有的函數(shù)名稱(chēng)相同的函數(shù)時(shí),才需要使用 new 操作符

  30.盡量使用 CLS-Compliant

  31.盡量編寫(xiě)短少,簡(jiǎn)單的函數(shù)

  32.盡量編寫(xiě)比較小的程序集(assembly)

  33.限定類(lèi)型的可見(jiàn)性(visibility)

  34.編寫(xiě)大粒度的 web API

  35.在使用事件時(shí),優(yōu)先繼承基類(lèi)事件,而不是重新創(chuàng)建一個(gè)事件

  36.多使用 framework 的運(yùn)行時(shí)調(diào)試 (DEBUG, TRACE, EVENTLOG等)

  37.使用.net標(biāo)準(zhǔn)的配置機(jī)制

  38.使用并且在類(lèi)中支持.net的數(shù)據(jù)綁定功能 (Data Binding)

  39.使用.net的驗(yàn)證機(jī)制 (Validation)

  40.根據(jù)你的需求選擇正確的集合類(lèi)(Collection)

     41.盡量使用安全代碼 (safe code)

  42.多多學(xué)習(xí)、使用外部工具和資源

  43.準(zhǔn)備使用 C# 2.0

    44.學(xué)習(xí) ECMA 標(biāo)準(zhǔn)

  45.在自定義結(jié)構(gòu)中使用 DataSet

  46.利用屬性(Attributes)

  47.不要過(guò)度使用反射(Reflection)

  48.創(chuàng)建完整的,應(yīng)用程序特定的異常

  49.盡可能多的考慮程序可能出現(xiàn)的異常,并作出處理

  50.盡可能少的使用 Interop