[C#] 複数のコンストラクタを呼び出す(this初期化子)

[C#] 複数のコンストラクタを呼び出す(this初期化子)

C# で複数のコンストラクタを呼び出す方法

C# でコンストラクタを複数呼び出す方法をまとめます。

コンストラクタで this キーワードを使用することで、同じオブジェクトで異なる引数のコンストラクタを呼び出すことができます。

例えば以下のようなクラスがあったとします。

class Person
{
    public int Age;

    public Person() 
    {
        this.Age = 0;
    }

    public Person(int age)
    {
        this.Age = age;
    }
}

2つのコンストラクタが定義されています。いずれも Age の値を初期化しています。

これを this キーワードを使って以下のように書くことができます。

class Person
{
    public int Age;

    public Person() : this(0)
    {
        Console.WriteLine("コンストラクタ - 2");
    }

    public Person(int age)
    {
        Console.WriteLine("コンストラクタ - 1");
        this.Age = age;
    }
}

このクラスを初期化すると、以下のような順で実行されます。

var p = new Person();
// コンストラクタ - 1
// コンストラクタ - 2

複数のコンストラクタが順番に実行されていることが確認できます。

以上。

C#カテゴリの最新記事