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

时间:2012-04-03 09:40:40

标签: c# class events subclass

我有A类,它实现了大量B类实例。 B类封装了C类的实例。

Class引发需要由A类处理的事件。 A类不需要了解C类。 C类传回基于绩效的统计数据,然后A需要合并。

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

1 个答案:

答案 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; }
    }
}