重複の可能性:
イベントハンドラーの登録を正しく解除する方法
MSDNは、次の2つのイベントサブスクリプションはまったく同等であると述べています(C#2.0と1.0の構文)。
publisher.CustomEvent += HandleCustomEvent;
publisher.CustomEvent += new CustomEventHandler(HandleCustomEvent);
新しい構文では、デリゲートオブジェクトのインスタンス化が非表示になっていることに注意してください。
後で適切に退会できるように、代理人への参照を保持する必要がありますか?
// Retain reference to delegate used to subscribe.
this.handleCustomEvent = new CustomEventHandler(HandleCustomEvent);
publisher.CustomEvent += this.handleCustomEvent;
...
// Use earlier reference to unsubscribe.
publisher.CustomEvent -= this.handleCustomEvent;
または、これは同じことですか?
publisher.CustomEvent += HandleCustomEvent;
...
publisher.CustomEvent -= HandleCustomEvent;
それらが同じである場合、なぜですか?
-= HandleCustomEvent
また、作成しますかnew()
?もしそうなら、このオブジェクトはによって作成されたオブジェクトと違いはありません+= HandleCustomEvent
か?