struct MyStruct { private int a; public int A { get { return a; } set { a = value; } } }
MyStruct s1; s1.A = 1; // error CS0165: 未割り当てのローカル変数 's1' が使用されました。 MyStruct s2 = default(MyStruct); s2.A = 1; MyStruct s3 = new MyStruct(); s3.A = 1;
publicなフィールドへは、明示的に値を割り当てていなくてもアクセスできます。
struct MyStruct2 { public int a; }
MyStruct2 s; s.a = 1;
C# 7.2以降で利用できます。不変であることが明確になり、パフォーマンスの向上を見込めます。The ‘in’-modifier and the readonly structs in C# - Developer Support
readonly 構造体 - 構造体型 - C# リファレンス - C# | Microsoft Learn