C#でもクロージャ
先日の日記で JavaScript でクロージャを書きましたが、C# でも匿名メソッドをつかえばいけるようです。
この間の JavaScript を C# で書くと以下のような感じになります。
public Form1() { InitializeComponent(); button1.Click += GetButtonClickHandler(); button2.Click += GetButtonClickHandler(); } private EventHandler GetButtonClickHandler() { int counter = 0; return delegate(object sender, EventArgs e) { ++counter; MessageBox.Show( ((Button)sender).Name + "は" + counter.ToString() + "回クリックされました。"); }; }
っていうか、ちょっとすごいんじゃないですか??
感動や・・・。