readonl(运行时常量)与const(编译时常量)
- readonly为运行时常量,程序运行时进行赋值,赋值完成后便无法更改,可称其为只读变量。
- const为编译时常量,程序编译时将对常量值进行解析,并将所有常量引用替换为相应值
声明及初始化
- readonly常量只能声明为类字段,支持实例类型或静态类型,可以在声明的同时初始化或者在构造函数中进行初始化,初始化完成后便无法更改。
- const常量除了可以声明为类字段之外,还可以声明为方法中的局部常量,默认为静态类型(无需用static修饰,否则将导致编译错误),但必须在声明的同时完成初始化。
readonly什么时候用
- readonly用于字段,意思是:字段只能在初始化时候赋值,在随后的使用中,字段的值不能再改变。
- readonly修饰的字段,其初始化仅是固定了其引用(地址不能修改),但它引用的对象的属性是可以更改的。
大胆使用readonly,为了值不再被赋值。