ReadOnly和Const之间的区别?

可能重复:
const和readonly有什么区别?

这些是可以互换的吗? 你能告诉我如何应用这两个代码吗?


不,他们不是。

const字段是嵌入在程序集中的文字值。
只有原始值(字符串和数字)可以是const ,并且它们在编译时进行评估。
当你引用一个const字段时,编译器嵌入该字段的字面值。 因此,如果使用另一个程序const ,而另一个程序集使用不同的值进行重新编译,则只有在您针对新版本重新编译时,程序集才会使用新值。


readonly字段是一个正常的字段,不能在构造函数之外进行更改。


Const不能执行评估,而只能在初始化时使用。 (也就是说,你可以从配置文件中读取一个readonly变量的值,或者根据运行时已知的其他参数读取值,const只能设置为编译时已知的值)


任何类型的成员都可以readonly 。 它仅仅意味着在构建包含类之后,该成员不能被重新分配 ; 即,它不能用=运算符设置为新对象。 像集合这样的可变类仍然可以针对其成员进行修改; 就是这样,如果你有一个readonly成员是一个集合,那么它在构建之后就不能被分配到一个全新的集合。

const与文字(如5 )没有太大的区别:它表示一个不变的值,因此在指定一个 (而不是对象 )的上下文中才有意义。

链接地址: http://www.djcxy.com/p/21217.html

上一篇: difference between ReadOnly and Const?

下一篇: constant and readonly in c#?