社区
C#
帖子详情
C#中const和readonly有什么区别?
guoxiny
2003-05-08 05:42:03
定义一个const变量和readonly变量有什么不同?
...全文
209
10
打赏
收藏
C#中const和readonly有什么区别?
定义一个const变量和readonly变量有什么不同?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qqchen79
2003-05-09
打赏
举报
回复
另外,const是编译期间替换的,而readonly static是运行期间引用的。
例如程序集A1引用了A2的一个const变量C,那么编译期间C的值就会被Copy到A1中。在运行时刻A1并不依赖于A2。而readonly static则相反。
yuwen16
2003-05-09
打赏
举报
回复
又学到不少东西。呵呵。
smart
2003-05-09
打赏
举报
回复
谢谢楼各位大哥你指点
pcnetman
2003-05-08
打赏
举报
回复
to:guoxiny(狼)
类属于此用类型的呀,此用类型都是可以的:
引用类型共分四种类型:
类,接口,数组,委派。
snewxf
2003-05-08
打赏
举报
回复
同意斑竹说的
const是常量,一旦声明就不能更改
readonly是变量,声明之后,可以在构造器里面初始化其值,
并且赋值后就不能在修改其值。
guoxiny
2003-05-08
打赏
举报
回复
const修饰的值的类型也有限制,
它只能为下列类型之一(或能够转换为下列类型的):
sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal, bool, string, enum类型, 或引用类型
不对吧。类也可以为常量类吧。
class a
{}
const a a1 = new a();
这样不行吗?
pcnetman
2003-05-08
打赏
举报
回复
readonly修饰符来表示只读域,
const来表示不变常量。
---
只读域只能在初始化--声明初始化或构造器初始化--的过程中赋值,
其他地方不能进行对只读域的赋值操作,否则编译器会报错。
只读域可以是实例域也可以是静态域。
只读域的类型可以是C#语言的任何类型。
---
const修饰的常量必须在声明的同时赋值,
而且要求编译器能够在编译时期计算出这个确定的值。
const修饰的常量为静态变量,
不能够为对象所获取。
const修饰的值的类型也有限制,
它只能为下列类型之一(或能够转换为下列类型的):
sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal, bool, string, enum类型, 或引用类型。
---
当我们需要一个const的常量时,
但它的类型又限制了它不能在编译时期被计算出确定的值来,
我们可采取将之声明为static readonly来解决。
但两者之间还是有一点细微的差别的。
const修饰的常量是在编译时便被计算出确定的值,并代换到引用该常量的每一个地方,
而readonly时在运行时才确定的量--只是在初始化后我们不希望它的值再改变。
chainet
2003-05-08
打赏
举报
回复
同意斑竹,
就是说readonly就好像是CD-R,const是CD-Rom,哈哈~
timmy3310
2003-05-08
打赏
举报
回复
const是常量,一旦声明就不能更改
readonly是变量,声明之后,可以在构造器里面初始化其值
guoxiny
2003-05-08
打赏
举报
回复
没人知道吗
自测试卷1.
const
和
readonly
有什么
区别
? 2.
C#
中
的数据类型分为哪两类,它们有什么
区别
? 3.下面是一个关于转义字符使用的控制台应用
1.
const
和
readonly
有什么
区别
? 2.
C#
中
的数据类型分为哪两类,它们有什么
区别
? 3.下面是一个关于转义字符使用的控制台应用程序:
c#
中
const
与
readonly
区别
c#
中
const
与
readonly
区别
C#
编程
中
readonly
与
const
的
区别
C#
编程
中
readonly
与
const
的
区别
详解
.net
中
const
和
readonly
使用
分别解说了
C#
中
const
的使用方法和
readonly
的使用方法和
区别
c#
.net
中
const
和
readonly
的
区别
readonly
修饰符用来表示只读,
const
用来表示不变常量。顾名思义,只读表示不能进行写操作;不变常量不能被修改。这两者到底有什么
区别
呢
C#
110,571
社区成员
642,565
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章