İç nesne örneğinden gelen olayları, bu gibi bir sözdizimi ile nesne nesnesinin olay işleyicilerine devretmek mümkündür:C# olay işleyicileri "zincirleme" mümkün mü?
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;
}
}
Yukarıdaki yapının motivasyonu, birçok sihirbaz benzeri UI akışına sahip olduğum ve Geri, İleri & Tasarımımda Açık Kapalı İlke ve Tek Sorumluluk İlkesine saygı duymak için tek bir sınıfa geçmeyi iptal edin.
OnFinish ve normal kontrole bir yöntem eklemek her zaman mümkündür, ancak iç içe geçmiş olayların bir sürü olması durumunda, bu lotların boilerplate kodu ile sona erecektir.
Teşekkürler, ikinci seçeneğin arkasındaki mantık sistemi bu şekilde uygulamak için yeterince iyi. Ve ilk seçenek için de eklediğim gibi ekstra yükleme ekleme için bir sözdizimi olduğunu fark etmedim. – plouh
Merak ediyorum, niçin test etmeden önce Finish'e Finish'i atarsınız ve Finish'i çağırırsınız? – dckrooney
@dcrooney: Bunun yerine işleyici çalıştırmış olmalı. Düzenleyecek –