2011-06-23 52 views
11

可能性の重複:
C#: How to remove a lambda event handler削除する匿名のイベントハンドラ

それは無名関数として添付されたイベントハンドラを削除することは可能ですか?のは、私がイベントを持っている、と私はこのようにそれに加入しましょう:

TestClass classs = new TestClass(); 
classs.myCustomEvent += (a,b) => { Console.Write(""); }; 

それは使用してこのなeventHandler削除するには何とか可能です - =を??

答えて

24

ことは可能ですが、最初のローカル変数に格納する必要があります:

MyDelegate handler = (a, b) => { Console.Write(""); }; 
class.myCustomEvent += handler; 
class.myCustomEvent -= handler; 
+3

わからないこれがdownvotedれた理由... +1、これが正解です。 "ローカル"変数に関する部分を除いて:ほとんどのシナリオでは、より長期間の場所に保存する必要があります... –

関連する問題