readonly字段和const字段最大的相似之处是,都不允许在类方法或属性中更改他们的值。最大的不同是,对于const需要在编写代码时给他们赋值(他们的值必须在编译时就被确定),而readonly字段的值可以在类的构造函数中动态地设置。
常量值总是被编译器替换成文本值。如果查看编译后的代码,将永远也看不出使用常量。只可以针对值类型(原始的数据类型:Int、Char、Float、Bool等)使用const关键字,而不能在引用类型中使用(如:所创建的类)。
readonly的处理就不一样了。他们不用关心值类型,并且他们可以再累的构造函数中被初始化,静态readonly只能在静态类狗仔函数中被初始化,实例化的readonly也只能在实例化的静态构造函数中被初始化。
注意,将引用类型设置为readonly字段,只有该引用时保持只读的。但在对象的内部数据仍然能修改。