【发布时间】:2012-07-04 06:36:09
【问题描述】:
今天我发现了一篇文章,其中const 字段被称为编译时常量,而readonly 字段被称为运行时常量。这两个短语来自《Effective C#》。我在 MSDN 和语言规范中进行了搜索,没有找到关于 运行时常量。
没有冒犯,但我不认为 运行时常量 是一个合适的短语。
private readonly string foo = "bar";
创建一个名为“foo”的变量,其值为“bar”,值为只读,这里是变量,constant上没有业务。只读变量仍然是变量,它不能是常量。变量和常量是互斥的。
也许这个问题太过分了,我还是想听听别人的意见。你怎么看?
【问题讨论】:
-
readonly是个坏名字。它应该被称为immutable。 -
我同意这不是书中术语的好选择。不过,这个问题并不适合 SO,因为
practical, answerable questions based on actual problems that you face. Chatty, open-ended questions diminish the usefulness of our site and push other questions off the front page -
这是一个“常数”,因为它是一个不会也不能改变的值(反射除外)。它不是 C# 规范术语中的常量表达式,但我认为在书中描述它时这不是什么大问题。听起来你真的没有编程问题...
-
@JonSkeet:从技术上讲,值可以在静态构造函数的执行期间改变,不是吗?
-
这里的 IL 术语非常好:
initonly
标签: c# .net constants readonly