C# の匿名メソッドの購読解除 質問する

C# の匿名メソッドの購読解除 質問する

匿名メソッドをイベントから登録解除することは可能ですか?

次のようなイベントをサブスクライブする場合:

void MyMethod()
{
    Console.WriteLine("I did it!");
}

MyEvent += MyMethod;

登録解除は次のように行えます:

MyEvent -= MyMethod;

しかし、匿名の方法を使用してサブスクライブする場合は次のようになります。

MyEvent += delegate(){Console.WriteLine("I did it!");};

この匿名メソッドの登録を解除することは可能ですか? 可能であれば、どのようにすればよいですか?

ベストアンサー1

Action myDelegate = delegate(){Console.WriteLine("I did it!");};

MyEvent += myDelegate;


// .... later

MyEvent -= myDelegate;

デリゲートへの参照を保持しておきます。

おすすめ記事