我想知道这是否真的有效?
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);
}
编译器如何知道事件处理程序是相同的?这还推荐吗?
有一个 MSDN 页面讨论了这个问题:
如何订阅和取消订阅事件 http://msdn.microsoft.com/en-us/library/ms366768.aspx
特别注意:
如果您不必取消订阅[原文如此]
稍后的事件,您可以使用
加法赋值运算符 (+=) 到
附加一个匿名方法
事件。
并且:
重要的是要注意你
无法轻易取消订阅
如果您使用匿名,则发生事件
功能来订阅它。到
在这种情况下取消订阅,就是
需要回到代码所在的位置
您订阅该事件,存储
委托中的匿名方法
变量,然后将委托添加到
事件 。一般来说,我们建议
您不使用匿名
订阅事件的函数,如果
您必须取消订阅
稍后某个时间点发生的事件
代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)