相关疑难解决方法(0)

如何删除lambda事件处理程序

可能重复:
在C#中取消订阅匿名方法
如何取消注册"匿名"事件处理程序

我最近发现我可以使用lambdas来创建简单的事件处理程序.我可以订阅像这样的点击事件:

button.Click += (s, e) => MessageBox.Show("Woho");
Run Code Online (Sandbox Code Playgroud)

但你怎么取消订阅呢?

c# events lambda event-handling

223
推荐指数
1
解决办法
8万
查看次数

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

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

如果我订阅这样的事件:

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

MyEvent += MyMethod;
Run Code Online (Sandbox Code Playgroud)

我可以这样取消订阅:

MyEvent -= MyMethod;
Run Code Online (Sandbox Code Playgroud)

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

MyEvent += delegate(){Console.WriteLine("I did it!");};
Run Code Online (Sandbox Code Playgroud)

是否有可能取消订阅这种匿名方法?如果是这样,怎么样?

c# delegates anonymous-methods

214
推荐指数
7
解决办法
7万
查看次数