(十一)const 和 readonly 的区别

来源:互联网 发布:淘宝服装图片 编辑:程序博客网 时间:2024/04/27 18:26

readonly 表示只读,const 表示不变常量
一、都是用来标识常量的

二、const 必须在声明的同时赋值;
readonly 可以在初始化的过程中赋值,因此,根据所使用的构造函数,readonly 字段可能有不同的值。

三、const 字段是编译时常数,readonly 字段可用于运行时常数
1.const 要求编译时计算出确定的值,去替换调用这个常数的每一个地方,因此,不能从变量中提取值来初始化常量
2.readonly 是在计算时执行的,在运行时才确定的该值

四、const 默认就是静态的,readonly 设置成静态的就必须显式声明

五、const 修饰的引用类型只能是 string 或者值为 null 的其他引用类型

六、object、array 和 struct 不能被声明为 const 常量 

七、readonly 只能用来修饰类的 field,不能修饰局部变量,也不能修饰 property 等其他类成员