Effective C#读书笔记(2)Readonly优于Const

来源:互联网 发布:windows.h 下载 编辑:程序博客网 时间:2024/06/05 23:42
 
       性能和便利性似乎是一对冤家。灵活性高了,性能总会有所降低;反过来,性能好了,灵活性又差强人意。而如今设计模式的大行其道似乎告诉我们,程序的灵活性才是王道。
       言归正传,Readonly是运行时常量,Const是编译时常量,编译时常量会稍微快一点,但是编译后就不能改了,运行时常量相反。用了Const,一旦要改动值,就必须重新编译,重新编译会带来什么呢?版本啊。版本的失控是非常恐怖的事情,俺们公司的所有软件的上千个版本就是所有研发人员最头疼的事情。
       下面是其他的一些对比——
 
 
Const 
Readonly
初始化
声明时初始化
声明、构造函数初始化
Static
默认为Static
必须加Static才是静态的
修饰类型
一般是简单类型
任意类型
修饰引用类型
String/null
任何引用
 
       另外,当声明常量数组时,使用public const int[] ar=new int [] {10,20};是错误的,原因就是此处的数组是引用类型,而Const修饰的引用类型只能是String,或者null。若将Const改为Readonly,数组地址为常量,但数组中的内容仍然可以修改。
 
原创粉丝点击