《Effective C#》读书笔记

第 2 条:考虑用 readonly 代替 const

编译期(compile-time)的常量:const,运行期(runtime)的常量: readyonly

const,可以写在方法里。只能用数字、字符串或 null 来初始化。
readyonly, 只能写在类里,不能写在方法里;但灵活,类型不受限制。

第 3 条:优先考虑 is 或 as 运算符,尽量少用强制类型转换

  有两种办法能够实现转换,一是使用 as 运算符,二是通过强制类型转换(cast)来绕过编译器的类型检查。在这之前,可以先通过 is 判断该操作是否合理,然后再使用as 运算符或执行强制类型转换。
  在这两种办法中,应该优先考虑第一种办法,也就是采用 as 运算符来实现类型转换,因为这样做要比盲目地进行类型转换更加安全,而且在运行的时候也更有效率。as 及 is 运算符不会考虑由用户所定义的转换,只有当运行期的类型与要转换到的类型相符时,该操作才能顺利地执行。这种类型转换操作很少会为了类型转换而构建新的对象(但若用 as 运算符把装箱的值类型转换成未装箱且可以为 null 的值类型,则会创建新的对象) 。

猜你喜欢

转载自www.cnblogs.com/tangge/p/12708995.html
今日推荐