我有一個有幾個孩子班的父母抽象班。最後,我希望通過GUI中的進度條來顯示兒童課程的進度。撫養孩子/父母事件
我現在已經做了什麼,我正在意識到這一點是行不通的,是在父類中聲明的事件方法定義,作爲每個子類將覆蓋的虛擬方法。因此,像:
public abstract class Parent
{
public event EventHandler someEvent;
protected virtual void OnSomeEvent(object sender, EventArgs e)
{
EventHandler eh= someEvent;
if (eh!= null)
{
eh(this, e);
}
}
}
我的子類有類似:
protected override void OnSomeEvent(object sender, EventArgs e)
{
base.OnSomeEvent(sender, e);
}
,而該事件在子類中的某處提高。
但是,由於我無法創建抽象類的實例,因此,作爲父類看起來很抽象,我無法從我的GUI中聽到該事件。
我完全偏離了課程和/或是否有另一種方法?
爲什麼您的UI無法附加到子實例上的事件?如果你從'Parent'繼承,'Child'也會有這個事件。 – qJake
這個想法是,我不一定希望GUI知道哪個孩子提出了事件。@SpikeX –
所以你想在Parent上有一個靜態事件處理程序,它只有一個實例,就是你說的。 – qJake