常量值总是被编译器换成文字值。如果查看编译后的译码,将永远也看不出在使用常量。只可以针对值类型(原始的数据类型:int,char,float,bool等)使用const关键字,而不能在引用类型中使用(如:所创建的类)。
readonly的处理就不一样了。它们不用关心值类型,并且它们可以在类的构造函数中被初始化。静态readonly只能在静态类构造函数中被初始化,实例化的readonly 也只能在实例化的静态构造函数中被初始化。
注意,将引用类型设置为readonly字段,只有该引用是保持只读的。但在对象的内部数据仍然能修改。