一尘不染

取消订阅C#中的匿名方法

c#

是否可以从事件中取消订阅匿名方法?

如果我订阅这样的活动:

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

MyEvent += MyMethod;

我可以这样退订:

MyEvent -= MyMethod;

但是,如果我使用匿名方法订阅:

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

是否可以取消订阅此匿名方法?如果是这样,怎么办?


阅读 363

收藏
2020-05-19

共1个答案

一尘不染

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

MyEvent += myDelegate;


// .... later

MyEvent -= myDelegate;

只需保持对代理人的引用即可。

2020-05-19