12. メンバには割り当て演算子よりもオブジェクト初期化子を利用すること。

  • 各コンストラクタ内でメンバ変数を初期化するのではなく、メンバ変数を宣言した時点で初期化してしまうと良い。

  • initializer 構文

  • オブジェクト初期化子:new

  • オブジェクト初期化子を使用すると、オブジェクトの作成時にアクセスできるフィールドまたはプロパティに、コンストラクターを呼び出して代入ステートメントを使用しなくても、値を割り当てることができます。

    Cat cat = new Cat { Age = 10, Name = "Fluffy" };
    Cat sameCat = new Cat("Fluffy"){ Age = 10 };
    
  • メンバ初期化子は、今ストラクより先に実行される。

    public class MyClass
    {
    private List<string> labels = new List<string>();
    
    public MyClass(){...}
    }