からだのブログ

五体満足に生まれてきたことに感謝してブログの名前を「からだ」にしました。

からだのブログ header image 2

prototypeof

5月 23rd, 2008 · No Comments · .net, language

最近は 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 常識的に考えて。

Tags: