最近は Java ばかりやっていて、C#3.0 が恋しいところ。
C#3.0 にないので、次のバージョンにあったらいいなあ、っていう演算子がある。prototypeof (仮)。例えば、現行の C#3.0 で、平面上の座標を表す3つの変数を宣言、初期化しているところ。
var pt1 = new { X = 5, Y = 5 };
var pt2 = new { X = 5, Y = 10 };
var pt3 = new { X = 20, Y = 5 };
var points = new[] { pt1, pt2, pt3 };
IDE でこれを書いてると、pt2 以降、X とか Y とかの候補が出てこないことに、イライラしてくるんだよね。まあ、元からある Point 型を使うなり、自分で構造体かクラスを定義すりゃいいんだけどさ。もっと手軽にやりたいよね、というところで prototypeof 演算子が効く。つまり、
var pt1 = new { X = 5, Y = 5 };
var pt2 = prototypeof(pt1) { Y = 10 };
var pt3 = prototypeof(pt1) { X = 20 };
var points = new[] { pt1, pt2, pt3 };
みたいに出来るのだ。もちろん、シンタックスシュガー扱いで、MSILは一緒のものが出てくる。
ま、実際はサンプルコードくらいにしか役に立たないんだけどねw 常識的に考えて。