2007年08月27日

C#3.0: オブジェクト初期化構文の強化

   このエントリーをはてなブックマークに追加 Clip to Evernote
class Point {
int x;
int y;
public int X {
get { return x; }
set { x = value; }
}
public int Y {
get { return y; }
set { y = value; }
}
public override string ToString() {
return string.Format("X = {0}, Y = {1}", X, Y);
}
}

というクラスがあったときに、

今までだと、

 Point p1 = new Point();
p1.X = 0;
p1.Y = 5;

と、インスタンス生成後に、プロパティに代入する必要があった。

C#3.0では、クラスの初期化構文が強化されて、

 Point p1 = new Point { X = 0, Y = 5 };

と書けるようになった。
もし、Pointに、
 public Point(string name) { ... }

というコンストラクタがあれば、

 Point p1 = new Point("Hoge") { X = 0, Y = 5 };

といった具合になる。


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/51083310