在这里讨论了SO之后,我已经多次读过可变结构是"邪恶"的评论(就像这个问题的答案一样).
C#中可变性和结构的实际问题是什么?
为什么我不能初始化初始化程序中的只读变量?以下内容不起作用:
class Foo
{
public readonly int bar;
}
new Foo { bar=0; }; // does not work
Run Code Online (Sandbox Code Playgroud)
这是由于CLR的某些技术限制吗?
编辑
我知道它new Foo { bar=0; }
是相同的new Foo().bar=0;
,但是CLR强制执行"readonly",还是仅仅是编译器限制?