事件取消订阅 [英] Event unsubscribe
本文介绍了事件取消订阅的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要取消订阅我的活动中订阅的所有代表。但是我发现有两种方法可以实现。
I need to unsubscribe all delegates subscribed on my event. But I found two ways to do it..
class Cls
{
delegate void doDel();
static event doDel doE;
void Uns
{
//first
foreach (doDel item in doE.GetInvocationList())
{
doE -= item;
}
//second
doE = null;
}
}
之间有什么区别?什么方式是最好的,为什么?
What difference between? And what way is best and why?
推荐答案
第一种方法是非常正确的。如 MSDN 所述:
First approach is quite correct. As MSDN states:
使用减法赋值运算符( - =)取消订阅事件:
Use the subtraction assignment operator (-=) to unsubscribe from an event:
publisher.RaiseCustomEvent - = HandleCustomEvent;
publisher.RaiseCustomEvent -= HandleCustomEvent;
当所有订阅者已取消订阅事件中,发布商类中的事件
实例设置为null。
When all subscribers have unsubscribed from an event, the event instance in the publisher class is set to null.
这篇关于事件取消订阅的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文