我有一个有成员对象(类变量)的类。这个对象有一些事件。我想直接在课堂上公开这些事件。这样做的最佳方式是什么?
答案 0 :(得分:2)
如果您想直接公开事件(无需定义要转发给订阅者的新处理程序),您可以这样做:
class MyClass {
private readonly OtherClass other = new OtherClass();
public event EventHandler Click {
add { other.Click += value; }
remove { other.Click -= value; }
}
}
此方法的优点是您不需要处理来自OtherClass的事件并将它们转发为您自己的事件。缺点(以及我将“其他”字段声明为readonly的原因)是任何连接到MyClass的Click事件的人都是间接地连接到OtherClass的Click事件。因此,您不希望仅更改另一个实例,因为不会调用已经处理该事件的订阅者。