readonly字段和const字段最大的相似之处是,都不允许在类方法或属性中更改它们的值。
最大的不同是,const需要在编写代码时给它们赋值(它们的值必须在编译时就被确定),而readonly字段的值可又在类的构造函数中动态地设置。
常量值会被编译替换成文字值。如果查看编译后的代码,将永远也看不出使用了常量。只可又针对值类型(原始数据类型:int,char,float,bool等)使用const关键字,而
不能在引用类型中使用(如:所创建的类)。
readonly的处理就不一样了,它们不用关心值类型,并且它们可又在类的构造函数中初始化,静态readonly字段只能在静态构造函数中初始化,实例化的readon也只能在实例构造函数中初始化。
注意:将引用类型设置为readonly字段,只有该引用是只读的,但在对象的内部数据仍然能修改。数组就是一个良好的示例,即使数组本身是只读的,其元素也是可以修改的。
引用参考书《asp.net电子商务开发实战》