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> ,如需转载请自行联系原作者