我有一个实现了大量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的事件?
事件实际上就是用委托字段包装的一对方法。您可以覆盖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; } } }