黑马程序员技术交流社区
标题:
readonly和const
[打印本页]
作者:
淡蓝色
时间:
2013-5-14 13:46
标题:
readonly和const
请问谁能帮我详细解释一下,readonly和const的具体区别,或者说有什么异同
作者:
许大虾
时间:
2013-5-14 13:58
const 的概念就是一个包含不能修改的值的变量。
常数表达式是在编译时可被完全计算的表达式。因此不能从一个变量中提取的值来初始化常量。
如果 const int a = b+1;b是一个变量,显然不能再编译时就计算出结果,所以常量是不可以用变量来初始化的。
readonly 允许把一个字段设置成常量,但可以执行一些运算,可以确定它的初始值。
因为 readonly 是在计算时执行的,当然它可以用某些变量初始化。
readonly 是实例成员,所以不同的实例可以有不同的常量值,这使readonly更灵活。
readonly 关键字与 const 关键字不同。
1. const 字段只能在该字段的声明中初始化。
readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。
2. const 字段是编译时常数,而 readonly 字段可用于运行时常数。
3. const 默认就是静态的,而 readonly 如果设置成静态的就必须显示声明。
4.const 对于引用类型的常数,可能的值只能是 string 和 null。
readonly可以是任何类型
总结
const只能在初期就使用常量初始化好。对于每一次编译后的结果,const的值是固定的,而readonly的值是可以在运行的时候才确定值的~~
作者:
林东枫
时间:
2013-5-14 14:07
用const来修饰一个变量 ,那么这个变量的值 在整个程序中都不会发生变化的,必须在定义的时候把它初始化,以后都不能再给它赋值,我们称它为常量。 如: const int PI = 3.14; 只要计算圆的周长和面积,都可以用这个常量;
用readonly 修饰的,在后台代码中你随时都可把任何一个值付给它修饰的变量,但在前台,就没办法在它修饰的控件中输入任何文本
作者:
王明明1004
时间:
2013-5-14 22:08
const 的概念就是一个包含不能修改的值的变量。常数表达式是在编译时可被完全计算的表达式。因此不能从一个变量中提取的值来初始化常量。如果 const int a = b+1;b是一个变量,显然不能再编译时就计算出结果,所以常量是不可以用变量来初始化的。readonly 允许把一个字段设置成常量,但可以执行一些运算,可以确定它的初始值。因为 readonly 是在计算时执行的,当然它可以用某些变量初始化。readonly 是实例成员,所以不同的实例可以有不同的常量值,这使readonly更灵活。readonly 关键字与 const 关键字不同。1. const 字段只能在该字段的声明中初始化。 readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。2. const 字段是编译时常数,而 readonly 字段可用于运行时常数。3. const 默认就是静态的,而 readonly 如果设置成静态的就必须显示声明。4.const 对于引用类型的常数,可能的值只能是 string 和 null。 readonly可以是任何类型总结const只能在初期就使用常量初始化好。对于每一次编译后的结果,const的值是固定的,而readonly的值是可以在运行的时候才确定值的~~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2