第六章类(十九)readonly
readonly英文译义是只读属性,在上篇与const的对比,是说
1 在运行时为readonly字段赋值的,看到编译出来的CIL代码中readonly字段还是变量。
同样是字段(面对对象的术语),const修饰是常量的意思,那么,又为何有readonly的出现呢?
难道就是因为它是在运行时赋值的嘛?
我们在之前的文字中理解过const从意思上讲是常量的意思,就是要描述不随着时间推移发生变化的事物。
2 readonly就是只读的意思,另外它只能在构造函数中赋值或者声明时给它赋值,所以它是只能只应用于字段而不是局部变量。
我在书籍资料中,有看到这样的文字,由于规范要求字段不要从起包容属性外部访问,所以从C#6.0起readonly修饰符几乎完全没有了用武之地。
所以,我理解readonly就是区别const的意义。在C#6.0出现之前,是只读字段。
3 const是静态的,readonly是可以修饰静态字段,也可以修饰实例字段。
除了自己看书还摘取这个博主的内容https://www.cnblogs.com/chen-jie/p/10-differences-between-constant-vs-readonly-static-readonly-fields.html