クラスの初期化時のみ値を設定することのできるセッターです。
この記述は、C#9.0(.Net5)から利用できます。
init専用セッターのサンプルソースは以下のようになります。
// サンプルクラス
class InitSample
{
/// <summary>
/// initテスト
/// </summary>
public string TestProperty { get; init; }
}
// 呼び出し部分
InitSample sample = new InitSample { TestProperty = "TEST" };
初期化以降、sampleにTestPropertyの値は設定できません。
設定しようとした場合、以下のコンパイルエラーになります。
init 専用プロパティまたはインデクサー 'InitSample.TestProperty' を割り当てることができるのは、オブジェクト初期化子の中か、インスタンス コンストラクターまたは 'init' アクセサーの 'this' か 'base' 上のみです。