他们说readonly和const之间的区别在于const是编译时(readonly是运行时).但究竟是什么意思呢,这是编译时间的事实?一切都被编译成字节码不是吗?
Noo*_*ilk 17
这意味着const变量被写入它们所引用的位置.所以,假设你有一个2库,一个带const变量:
// Library A
const int TEST = 1;
// Library B
void m ()
{
Console.WriteLine(A.TEST);
}
Run Code Online (Sandbox Code Playgroud)
该变量实际上是在编译时写入B.不同的是,如果重新编译A而不是 B,则B将具有"旧"值.readonly变量不会发生这种情况.
Ego*_*hin 12
它只是意味着标记为的成员的每个实例const在编译期间都将被其值替换,而readonly成员将在运行时被解析.