是否可以从事件中取消订阅匿名方法?
如果我订阅这样的活动:
void MyMethod() { Console.WriteLine("I did it!"); } MyEvent += MyMethod;
我可以这样退订:
MyEvent -= MyMethod;
但是,如果我使用匿名方法订阅:
MyEvent += delegate(){Console.WriteLine("I did it!");};
是否可以取消订阅此匿名方法?如果是这样,怎么办?
Action myDelegate = delegate(){Console.WriteLine("I did it!");}; MyEvent += myDelegate; // .... later MyEvent -= myDelegate;
只需保持对代理人的引用即可。