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
か?