Today I found an article where a const
field is called compile-time constant while a readonly
field is called runtime constant. The two phrases come from 《Effective C#》. I searched in MSDN and the language spec, find nothing about runtime constant.
No offensive but I don't think runtime constant is a proper phrase.
private readonly string foo = "bar";
creates a variable named "foo", whose value is "bar", and the value is readonly, here it is a variable, no business on constant
. A readonly variable is still a variable, it can't be a constant. Variable and constant are mutually exclusive.
Maybe this question goes overboard, still I want to listen to others' opinions. What do you think?
Best Answer
I believe that author means the following:
Consider example:
this, will not compile, as you have to have constant value to assign to
a
. So this is a meaning of compile-time constant .Instead if you change this to
this will compile. It at runtime makes a computation and assign it to
a
. This is a meaning of runtime constant