const与readonly总结如下:
1.const和readonly在指定初始值以后将可读不可写
2.const是编译时常量,readonly是运行时常量.
因此const只能在该字段的声明中初始化,而readonly字段可以在声明或构造函数中初始化,因此根据构造函数的不同,readonly可能有不同的值
例如:
const int A = B+1; B如果是一个变量,显然不能再编译时就计算出结果,所以常量是不可以用变量来初始化的。
B如果是一个const常量,在编译的时候就会有一个明确的值,所以这句话就是正确的
3.const默认是静态的,是一个对象成员,readonly默认是一个实例成员
const成员是一个类得成员,引用方式为:类.成员 readonly为对象实例.成员
static readonly为类成员引用方式:类.成员
4.const对于引用类型来讲只能是String和null,readonly可以是任意的类型
5.const的效率较高,readonly比较灵活