有效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的缺陷 

理解GetHashCode()的缺陷

8.使用查询语法代替循环

使用linq语法配合拉姆达表达式代替for循环

9.在你的应用程序接口中,避免转换操作

10.使用可选参数,最小化重载函数参数签名

11.理解小函数的魅力(尽量抽取函数)

12.使用成员初始化器,而不是赋值语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值