社区
C#
帖子详情
readonly和const的区别?
luohuajiexiejuan
2011-06-30 08:46:41
readonly和const的区别?
...全文
228
8
打赏
收藏
readonly和const的区别?
readonly和const的区别?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chengjia2284
2011-06-30
打赏
举报
回复
[Quote=引用 2 楼 kingdom_0 的回复:]
* readonly和const都是用来标识常量的。
* const可用于修饰class的field或者一个局部变量(local variable);而readonly仅仅用于修饰class的field。
* const常量的值必定在编译时就已明确并且恒定的;而readonly常量却有一点不同,那就是其值可以在运行时编译,当然,它也必须遵守作为常量的约束,那就是值必须恒定不变。
……
[/Quote]
+1
ZhangNan20100811
2011-06-30
打赏
举报
回复
[Quote=引用 2 楼 kingdom_0 的回复:]
* readonly和const都是用来标识常量的。
* const可用于修饰class的field或者一个局部变量(local variable);而readonly仅仅用于修饰class的field。
* const常量的值必定在编译时就已明确并且恒定的;而readonly常量却有一点不同,那就是其值可以在运行时编译,当然,它也必须遵守作为常量的约束,那就是值必须恒定不变。
……
[/Quote] mark!
daifei4451
2011-06-30
打赏
举报
回复
那么多的Ctrl+c 和Ctrl+v 我就不找了 像这样的问题 还是自己去百度或者谷歌找一下
cjh200102
2011-06-30
打赏
举报
回复
区别:
readonly和const都是用来标识常量的。
const可用于修饰class的field或者一个局部变量(local variable);而readonly仅仅用于修饰class的field。
const常量的值必定在编译时就已明确并且恒定的;而readonly常量却有一点不同,那就是其值可以在运行时编译,当然,它也必须遵守作为常量的约束,那就是值必须恒定不变。
const常量必须在声明的同时对其进行赋值,并且确保该值在编译时可确定并恒定;而readonly常量则可以根据情况选择在声明的同时对其赋予一个编译时确定并恒定的值。
const常量属于类级别(class level),并且它不能跟static结合一起使用,
readonly可以与static结合使用,
能被const修饰声明为常量的类型必须是以下的基元类型(primitive type):sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, float, bool, decimal, string。
object, 数组(Array)和结构(struct)不能被声明为const常量。
参考《Microsoft .NET框架程序设计(修订版)》
Tragedy
2011-06-30
打赏
举报
回复
这种问题没有必要提的 google上一收一大把
remember_me
2011-06-30
打赏
举报
回复
被const修饰的变量为常量。它的特性是只能在变量声明的地方赋值,其余地方不可以赋值,否则报错,也就是说,除了变量定义的地方,常量不可以在程序其他地方出现在等号左边。
另外,被const修饰的变量,可以通过类名.直接调用。
readonly,顾名思义,只读。
它与const的不同之处,在于可以修饰的成员种类不同。另外,赋值范围不同
readonly不只可以在声明处赋值,也可以在构造函数中赋值,把变量的赋值工作推迟到了程序运行过程中。由此,
我们时常也把const叫做编译时常量,把readonly叫做编译时常量。
kingdom_0
2011-06-30
打赏
举报
回复
* readonly和const都是用来标识常量的。
* const可用于修饰class的field或者一个局部变量(local variable);而readonly仅仅用于修饰class的field。
* const常量的值必定在编译时就已明确并且恒定的;而readonly常量却有一点不同,那就是其值可以在运行时编译,当然,它也必须遵守作为常量的约束,那就是值必须恒定不变。
* const常量必须在声明的同时对其进行赋值,并且确保该值在编译时可确定并恒定;而readonly常量则可以根据情况选择在声明的同时对其赋予一个编译时确定并恒定的值,或者将其值的初始化工作交给实例构造函数(instant constructor)完成。如:public readonly string m_Now = DateTime.Now.ToString();,m_Now会随着运行时实际情况变化而变化。
* const常量属于类级别(class level)而不是实例对象级别(instant object level),并且它不能跟static结合一起使用,该常量的值将由整个类的所有实例对象共同分享(详细论述参见后面的Remark区域)。
* readonly常量既可以是类级别也可以是实例对象级别的,这取决于它的声明以及初始化工作怎么实施。readonly可以与static结合使用,用于指定该常量属于类级别,并且把初始化工作交由静态构造函数(static constructor)完成(有关如何把readonly常量声明为类级别或实例对象级别的论述清参见后面的Remark区域) 。
* 能被const修饰声明为常量的类型必须是以下的基元类型(primitive type):sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, float, bool, decimal, string。
* object, 数组(Array)和结构(struct)不能被声明为const常量。
* 一般情况下,引用类型是不能被声明为const常量的,不过有一个例外:string。该引用类型const常量的值可以有两种情况,string或null。其实,string虽然是引用类型,但是.NET却对它特别处理,这种处理叫做字符串恒定性(immutable),使得string的值具有只读特性。有关字符串恒定性的内容,可以参考《Microsoft .NET框架程序设计(修订版)》。
Tragedy
2011-06-30
打赏
举报
回复
http://www.cnblogs.com/morningwang/archive/2008/10/10/1308325.html
C#编程中
readonly
与
const
的
区别
C#编程中
readonly
与
const
的
区别
详解
自测试卷1.
const
和
readonly
有什么
区别
? 2.C#中的数据类型分为哪两类,它们有什么
区别
? 3.下面是一个关于转义字符使用的控制台应用
1.
const
和
readonly
有什么
区别
? 2.C#中的数据类型分为哪两类,它们有什么
区别
? 3.下面是一个关于转义字符使用的控制台应用程序:
c#中
const
与
readonly
区别
c#中
const
与
readonly
区别
.net中
const
和
readonly
使用
分别解说了C#中
const
的使用方法和
readonly
的使用方法和
区别
C#中
const
和
readonly
的不同
const
的概念就是一个包含不能修改的值的变量。常数表达式是在编译时可被完全计算的表达式。因此不能从一个变量中提取的值来初始化常量。...
readonly
关键字与
const
关键字不同。 1.
const
字段只能在该字段的声明中
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章