MRが楽しい

MRやVRについて学習したことを書き残す

C#でインスタンス生成時にプロパティを設定する方法

本日は C# の小ネタ枠です。
C#インスタンス生成時にプロパティを設定する幾つかの記法について記事にします。

オブジェクトの初期化

オブジェクトの初期化構文ではコンストラクタで指定できないプロパティを設定できます。
本記法は C#3.0 以降から利用可能です。
・クラス例

public class ExampleData01
{
    public int Id;
    public string Text;
}

・初期化例

ExampleData01 data = new ExampleData01 { Id = 0, Text = "Message" };

オプション引数を使ったコンストラク

コンストラクタから引数のみでプロパティを設定したい場合、オプション引数を使ったコンストラクタを定義しておくと1つのコンストラクタで様々な設定ができます。
オプション引数の記法は C#4.0 以降から利用可能です。
・クラス例

public class ExampleData02
{
    private int Id;
    private string Text;

    public ExampleData02(int id = 0, string text = "Message")
    {
        Id = id;
        Text = text;
    }
}

・初期化例

ExampleData02 pattern01 = new ExampleData02();
ExampleData02 pattern02 = new ExampleData02(id:1);
ExampleData02 pattern03 = new ExampleData02(text:"MessageOne");
ExampleData02 pattern04 = new ExampleData02(id:2, text:"MessageTwo");
Tips

VisualStudioでコンストラクタを自動生成する場合は、クラス内のコンストラクタを挿入したい行を選択します。
この状態で[Ctrl + .]キーを押下して[コンストラクターを生成する]を選択すると、コンストラクタが生成されます。
f:id:bluebirdofoz:20211216235535j:plain