readonly
在 C#中创建字段的目的是什么?
它实际上似乎并没有阻止修改该字段:
public struct Struct
{
public readonly int Value;
public Struct(int value)
{
this.Value = value;
}
}
static class Program
{
static void Main()
{
var s = new Struct(1);
Debug.Assert(s.Value == 1, "Read-only field is 1");
s = new Struct(2);
Debug.Assert(s.Value == 2, "Read-only field written!");
}
}
这被认为是一个漏洞,还是设计使然?
鉴于该字段可以很容易地修改,我什么时候可以从创建字段中受益readonly
?