3

重複の可能性:
新しいハンドラーを使用してEventhandlerをアタッチするか、直接割り当てるか

コールバックをに割り当てることの違いは何ですか?たとえば、を使用してボタンのClickイベントを使用する場合と、+= new(...)単に使用する場合の違いは何+=ですか?わかりやすくするために、それぞれのサンプルを次に示します。

Button b = new Button();
b.Click += new System.EventHandler(button_Click);
b.Click += button_Click;

最初のものはメソッドの新しいインスタンスを作成しますがbutton_Click、2番目のものは常にこれで定義されたものを使用しますか?

4

2 に答える 2

7

2番目のものは最初のものの省略形であるため、両方がイベントハンドラーを作成し、それをに追加しClickます。

これは、「C#inDepth」のイベントに関する章からの良い説明です。

于 2012-08-26T07:00:28.547 に答える
2

違いはありません。

あなたもすることができます。

b.Click += (e, sender) =>{
 // do something here
};

3つすべてが同じです。つまり、デリゲートに関数を割り当てます。

于 2012-08-26T07:04:18.323 に答える