構造体

未割り当てな変数へのアクセス

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;

readonly 構造体

C# 7.2以降で利用できます。不変であることが明確になり、パフォーマンスの向上を見込めます。The ‘in’-modifier and the readonly structs in C# - Developer Support

readonly 構造体 - 構造体型 - C# リファレンス - C# | Microsoft Learn

Microsoft Learnから検索