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