通过类B将事件从类C传递到类A

14

我有一个实现了大量Class B实例的Class A。 Class B封装了一个Class C的实例。

Class C会引发需要被Class A处理的事件。 Class A不需要知道Class C。 Class C会传递基于性能的统计信息,然后A需要将它们合并。

如何创建Class B中的事件并连接它们,以便Class A可以订阅Class B的事件并接收来自Class C的事件?


抱歉?类A 实现了大量的类B实例?这是什么意思?请提供一些代码。 - Andras Zoltan
1个回答

28

事件实际上就是用委托字段包装的一对方法。您可以覆盖ClassB中添加和删除方法的默认实现,直接将值传递给ClassC中的事件:

public class ClassB
{
    private ClassC m_C = new ClassC();

    public event EventHandler MyEvent
    {
        add { m_C.MyEvent += value; }
        remove { m_C.MyEvent -= value; }
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接