我有A类,它实现了大量B类实例。 B类封装了C类的实例。
Class引发需要由A类处理的事件。 A类不需要了解C类。 C类传回基于绩效的统计数据,然后A需要合并。
如何在B类中创建事件并连接它们,以便A类可以订阅B类的事件并从C类接收事件?
答案 0 :(得分:23)
事件只不过是一对包装委托字段的方法。您可以覆盖add& amp;的默认实现。移除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; }
}
}