A对象订阅了B对象的事件,如果要删除B对象,这些事件订阅需要处理吗?
或者要删除A对象,正确的处理方式是怎样的?

解决方案 »

  1.   

    代码如下:
    public Group(Group parent) : base()
    {
    if (parent != null)
    {
    parentGroup = parent;
    parent.PartCountChanged += new PartCountChangedHandler(base.OnPartCountChanged);
    }
    }业务逻辑如下:
    Group下可建立多个子Group,Group构造的时候传入父Group作为参数,
    为传入的父Group的PartCountChanged 事件订阅一个方法。
    针对一个父Group可以移除它的子Group,在子Group移除的时候还存在一个事件订阅,这个事件订阅需要处理吗?怎么处理?
      

  2.   

    parent.PartCountChanged -= new PartCountChangedHandler(base.OnPartCountChanged);
      

  3.   

    要是删除B,没有问题,删就删吧,只不过A原先订阅的东西现在开始就收不到了。如果要删除A,那么需要在删除的同时取消订阅,否则一旦B触发了事件会出现NullException。