我有 A 类,它实现了大量 B 类的实例。 B 类封装了 C 类的一个实例。
C 类引发需要由 A 类处理的事件。 A类不需要知道C类。 C 类正在传回基于性能的统计数据,然后 A 类需要合并这些数据。
如何在 B 类中创建事件并将它们连接起来,以便 A 类可以订阅 B 类的事件并接收来自 C 类的事件?
最佳答案
一个事件只不过是一对包装委托(delegate)字段的方法。您可以覆盖 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; }
}
}
关于c# - 将事件从 C 类通过 B 类传递到 A 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9990718/