0

重複の可能性:
「匿名」イベントハンドラーの登録を解除するにはどうすればよいですか

私のC#メソッドでは、私が使用しています

this.Loaded+=(sender,e)=>{ my code }; 

ロード時にコードを実行するため。しかし、私の問題は、この連鎖したイベントの登録を解除する方法がわからないことです。私は似たようなことを試しました

this.Loaded-=(sx,ex)=>{}; 

しかし、イベントは登録解除されていません。誰でもこの問題を解決するのを手伝ってください。

4

2 に答える 2

6

このコードは、イベントに関連付けられたメソッドを使用して匿名型を作成するため、このイベントから切り離すには、新しいメソッドではなく同じメソッドを提供する必要があります。

だからこれを試してください:

EventHandler handler = (sender,e)=>{...};
Loaded += handler;
Loaded -= handler;

イベントにアタッチするためのthis.方法は、通常、次のような素晴らしい代替手段があります

override OnLoaded(EventArgs args)
于 2013-01-07T10:39:21.820 に答える
2

インライン イベント サブスクリプションの登録を解除することはできません。登録を解除できるようにしたい場合は、通常のdelegate/handlerサブスクリプションを使用してください。

于 2013-01-07T10:38:56.427 に答える