黑马程序员技术交流社区

标题: const与readonly的区别 [打印本页]

作者: 胡盼盼    时间: 2013-9-3 11:15
标题: const与readonly的区别
我知道const用来声明常量readonly是只读访问,他俩还有别的不同吗?

作者: 许庭洲    时间: 2013-9-3 13:14
1.const关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值不能被修改。常数声明引入给定类型的一个或多个常数;
2.const数据成员的声明式必须包含初值,且初值必须是一个常量表达式。因为它是在编译时就需要完全评估;
3.const成员可以使用另一个const成员来初始化,前提是两者之间没有循环依赖;
4.readonly在运行期评估赋值,使我们得以确保“只读访问”的前提下,把object的初始化动作推迟到运行期进行;
5.readonly关键字与const关键字不同,const字段只能在该字段的声明中初始化。readonly字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly字段可能具有不同的值。另外,const字段是编译时常数,而readonly字段可用于运行时常数;
6.readonly只能在声明时或者构造函数里面初始化,并且不能在static修饰的构造函数里面。

作者: 帕格尼尼的眼泪    时间: 2013-9-4 11:13
const 是指一个包含不能修改的值的变量,用来声明常量
常量表达式是在计算时是被完全计算的,因此不能被变量初始化

readonly 允许把一个字段设置成常量,也可执行运算,可以确定它的初始值
因为 readonly 是在计算时执行的,它可以用变量初始化


readonly 关键字与 const 关键字区别

1. const 字段只能在该字段的声明中初始化。
   readonly 字段可以在声明或构造函数中初始化
2. const 是编译时常数,而 readonly 字段可用于运行时常数。
3. const 默认就是静态的,readonly 声明设置成静态
4.const 对于引用类型的常数,可能的值只能是 string 和 null。
   readonly可以是任何类型

5.const的值是固定的,而readonly的值是可以在运行的时才确定




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2