事件取消订阅 [英] Event unsubscribe

查看:158
本文介绍了事件取消订阅的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要取消订阅我的活动中订阅的所有代表。但是我发现有两种方法可以实现。

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆