我們的目標:盡可能編寫出運行效率更高,更健壯,更容易維護的C#代碼。原則一:盡可能的使用屬性(property),而不是數據成員(field)。A
對於常量,C#裡有兩個不同的版本:運行時常量和編譯時常量。因為 他們有不同的表現行為,所以當你使用不當時,將會損傷程序性能或者出現錯誤 。兩害相權
C#是一個強數據類型語言。好的編程實踐意味著當可以避免從一種數據類型 強制轉化為另種數據類型時,我們應該盡我們的所能來避免它。但在某些時候, 運行
使用#if/#endif 塊可以在同樣源碼上生成不同的編譯(結果),大多數debug 和release兩個版本。但它們決不是我們喜歡用的工具。由於
值類型數據還是引用類型數據?結構還是類?什麼你須要使用它們呢?這不 是C++,你可以把所有類型都定義為值類型,並為它們做一個引用。這也不是 Jav
恆定類型(immutable types)其實很簡單,就是一但它們被創建,它們(的值) 就是固定的。如果你驗證一些准備用於創建一個對象的參數,你知
.Net系統默認所有的對象初始化時都為0。這並沒有提供一個方法來預防其他 程序員創建的值類型數據的實例在初始化是都是0。請讓你的數據類型默認值也
明白ReferenceEquals(), static Equals(), instance Equals(), 和運算行 符==之間的關系。當你
這是本書中唯一一個被一整個函數占用的原則,你應該避免寫這樣的函數。 GetHashCode()僅在一種情況下使用:那就是對象被用於基於散列的集合的
C#的foreach語句是從do,while,或者for循環語句變化而來的,它相對要好 一些,它可以為你的任何集合產生最好的迭代代碼。它的定義依懶