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> ,如需轉載請自行聯系原作者