コンストラクタとプロパティを一括で書く
この記法は絶対に必要だよなあ。こんな感じか。
public class Hoge : BaseClass { Point p; public Hoge( string name to public Name{ get; private set; }, //ゲットオンリープロパティ int id to id, //フィールド int x, int y, int z) : base(z) { p = new Point(x,y); } public Hoge(string name, int id) : this(name,id,0,0,0){} } ↓ public class Hoge : BaseClass { public string Name{ get; private set; } int id; Point p; public Hoge(string name, int id, int x, int y, int z) : base(z) { Name = name; this.id = id; p = new Point(x,y); } public Hoge(string name, int id) : this(name, id, 0, 0, 0){} }
プロパティ宣言、コンストラクタ引数、代入式の三箇所に出てきたものが一つにまとまった。引数クラスとか戻り値クラスをつくるのが格段に楽になる。構造体も簡単に初期化できる。いいことずくめじゃないか。