可能重复:
在C#中取消订阅匿名方法
如何取消注册"匿名"事件处理程序
我最近发现我可以使用lambdas来创建简单的事件处理程序.我可以订阅像这样的点击事件:
button.Click += (s, e) => MessageBox.Show("Woho");
Run Code Online (Sandbox Code Playgroud)
但你怎么取消订阅呢?
我想知道这是否真的有效?
private void RegisterKeyChanged(T item)
{
item.OnKeyChanged += (o, k) => ChangeItemKey((T)o, k);
}
private void UnRegisterKeyChanged(T item)
{
item.OnKeyChanged -= (o, k) => ChangeItemKey((T)o, k);
}
Run Code Online (Sandbox Code Playgroud)
编译器如何知道事件处理程序是否相同?这甚至是推荐的吗?