0

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

イベントリスナーを追加するには、次の 2 つの方法があることに気付きました。

List.Changed += new ChangedEventHandler(ListChanged);

または単に、

List.Changed += ListChanged;

これら2つの宣言の違いは何ですか?

Visual Studio のオートコンプリートでは前者が生成されますが、動作が異なるのでしょうか。また、前者を使用する場合、リスナーを削除するにはどうすればよいでしょうか。後者を使用すると、List.Changed -= ListChanged; うまくいきますよね?

4

2 に答える 2

0

違いはありません。2 番目の形式の方が少し単純です (コードが少ない)。

于 2012-08-31T08:54:38.350 に答える
0

どちらも同じ IL を生成するため、違いはありません。短い例では、コンパイラは使用するデリゲート型を自動的に推測します。

リスナーの削除も同様に交換可能です。

// both will work the same way, no matter which one was used to register the handler
List.Changed -= ListChanged;
List.Changed -= new ChangedEventHandler(ListChanged);
于 2012-08-31T08:54:47.947 に答える