20
是可以委派從內對象實例的corrent對象的事件處理程序的事件與這樣的語法:是否有可能在c#中「鏈」EventHandlers?
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 &取消對單個類的處理,以尊重設計中的開放閉合原則和單一責任原則。
添加一個方法OnFinish並進行常規檢查總是有可能的,但如果有很多嵌套事件,它會以很多樣板代碼結束。
謝謝,第二個選項背後的原因足以以這種方式實現系統。並感謝第一個選項,因爲我沒有意識到有一個語法來重載add。 – plouh 2010-02-24 07:40:19
出於好奇,爲什麼在測試null和調用Finish之前將Finish分配給處理程序? – dckrooney 2011-06-28 20:39:30
@dcrooney:應該調用處理程序。將編輯。 – 2011-06-28 20:55:42