Twitterでこの記事についてつぶやく

2010年2月20日土曜日

C# イベントハンドラに引数を渡す方法「クロージャのやり方」

今日はC#で「クロージャ」という、

「関数を戻り値とする関数」特殊な関数の作り方を書きます。



private void frmMain_Load(object sender, EventArgs e)
{
Button btnTEST = new Button();

btnTEST.Click += eventSet("btnTEST");
this.Controls.Add(btnTEST);
}


private EventHandler eventSet(String str)
{
return delegate(object sender2,EventArgs e2)
{
Button btnSend = sender2 as Button;
btnSend.Text = str + ":クリックされたよ";
};
}



delegateは匿名関数を宣言するときの

予約語です。


データソースを読み込んで、自動で

コントロールを大量に生成しなければならないときなどに

便利だと思います。


(また今日も小ネタですw)

0 件のコメント:

コメントを投稿