天天看點

有效c# Effective C#

1.使用屬性代替使用成員變量

2.使用readonly代替const

// Compile time constant: 

public const int Millennium = 2000;

// Runtime constant: 

public static readonly int ThisYear = 2004;

編譯時常量在編譯時,将用到該常量的地方都用它的值(2000)去替換了.

Runtime constants are evaluated at runtime. The IL generated when you 

reference a read-only constant references the readonly variable, not the 

value.

運作時常量則在運作時計算出值,當你引用一個readonly常量時生成的IL引用的是readonly這個變量,而不是值。

是以,如果你把const編譯在一個dll中,并且其他項目應用到這個dll,編譯的時候,是把這個值嵌入到IL中了。随着時間流逝,當你再重新更高const的值,并且釋出了這個新的dll,那麼原先的項目再使用新的dll會發現const的值并沒有在自己的dll中改變。因為這個值在之前已經被嵌入進IL了。

這時要麼現有的dll也重新編譯,要麼就事先把const換成readonly。

3.使用is或者as代替直接轉換

4.使用條件屬性代替#if

5.總是提供ToString()方法

6.在不同判等概念中,了解這些關系

7.了解GetHashCode的缺陷 

<a href="http://cnn237111.blog.51cto.com/2359144/588694">了解GetHashCode()的缺陷</a>

8.使用查詢文法代替循環

使用linq文法配合拉姆達表達式代替for循環

9.在你的應用程式接口中,避免轉換操作

10.使用可選參數,最小化重載函數參數簽名

11.了解小函數的魅力(盡量抽取函數)

12.使用成員初始化器,而不是指派語句

本文轉自cnn23711151CTO部落格,原文連結:<b>http://blog.51cto.com/cnn237111/588705</b> ,如需轉載請自行聯系原作者

繼續閱讀