【发布时间】:2010-02-24 07:16:19
【问题描述】:
可以使用如下语法将来自内部对象实例的事件委托给正确对象的事件处理程序:
public class MyControl {
public event EventHandler Finish;
private Wizard wizard;
public MyControl( Wizard wizard ) {
this.wizard = wizard;
// some other initialization going on here...
// THIS is what I want to do to chain events
this.wizard.Finish += Finish;
}
}
上述结构的动机是我有许多类似向导的 UI 流程,并希望将 Back、Forward 和 Cancel 处理分离到一个类中,以在我的设计中尊重 Open Closed 原则和 Single Responsibility 原则。
添加一个方法 OnFinish 并进行常规检查总是有可能的,但如果有很多嵌套事件,最终会得到很多样板代码。
【问题讨论】:
标签: c# event-handling