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

标签 c# class events subclass

我有 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/

相关文章:

c# - MAXIMO API 7.6.1 POST 以编程方式创建服务请求创建空记录,但在 POSTMAN 中同样有效

c# - Mapper.Map(source, dest) 和 Mapper.Map(source) 有什么区别?

c++ - 分离类时,在 cpp 文件中使用函数会导致错误

ruby-on-rails - 我如何知道 rail html.erb 组件的 ID 和类是什么?

c# - 为什么这不会导致事件的无限循环?

c# - 有什么方法可以刷新 Azure DevOps REST API 中的拉取请求合并状态?

c# - 无法通过 "using"使用命名空间

c# - 将 StreamReader(String) 转换为与 UWP API 兼容?

angular - 如何获取动态 Angular 形式的变化事件的值?

jquery - HTML5 音频事件 'progress' 未触发