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的值是可以在运行的时候才确定值的~~
详细解决方案
c#中const与readonly差异
热度:24 发布时间:2016-05-05 03:29:23.0
相关解决方案
- struts2.0中 怎么动态控制<s:textfield>readonly 属性
- wchar_t *”转换为“const std:string ?解决思路
- wchar_t *”变换为“const std:string
- vc++.net中的有关问题( error C2440: 'type cast' : cannot convert from 'CString' to 'const char *')
- 请问,报不能将“const char [7]”转换为“LPCTSTR”
- TextBox Readonly 后,前台赋值,后台老板无法取得资料
- TextBox Readonly 后,前台赋值,后台无法取得资料,该怎么处理
- 在后台给TextBox设置只读属性的时候,设置Attributes["readonly"] = "readonly"取消 只读的又该如何设置呢
- <asp:BoundField DataField="pcnt" HeaderText="完成率" SortExpression="pcnt" ReadOnly="True" DataFormatString="{0:p}" />解决办法
- ReadOnly="true"的textbox仍能拖入文字,该如何解决
- [求助]const int *p;的声明问题
- const 用法经验集合
- 文本框input 设立属性 readonly 按Backspace时会返回上一页
- 真正实现 select 上拉 只读 readonly
- radio disapled readonly 失效传值有关问题
- jsf readonly 字段交付的时候是不会执行set方法的
- 怎么实现JSP页面控件的不可编辑――disabled readonly
- 设立checkbox为只读(readOnly)
- 'readOnly' hibernate解决思路
- 怎么为用户控件生成一个叫"ReadOnly"的属性
- QFile:QFile ( const QString & name ),里边可以加有路径吗
- connect(m_mediaService, SIGNAL(playTime( const qint64&c解决思路
- error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * _thisc
- QProcess:execute(const QString & program, const QStringList & arguments),该如何处理
- const QString有关问题
- IOException:readonly-file system,权限有关问题
- wince+MFC error C2440: “=”: 无法从“const wchar_t *”转换为“LPWSTR”,该如何处理
- php面向对象类中的$this,static,final,const,self及双冒号 : 这几个关键字使用方法
- MFC之调用DLL的有关问题:error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR
- error C2665: “operator new” : 5个满载中没有一个可以转换参数1(从“const char [71]”类型)