我有一個抽象基類,繼承自UserControl
,然後用它派生許多類。創建派生控件
我的問題是如何優雅地確保生成的函數InitializeComponent()
被稱爲每層的類。
所以(抽象)基類有一些控件,將爲所有孩子共享。當創建子類的實例,基構造函數首先被調用,但有什麼辦法能夠完美地調用派生InitializeComponent()
,而無需有效地建立相同構造的每一個派生類
public DerivedClass() {
InitializeComponent();
}
我想知道如果在每個派生類中重複自己的方法更有效嗎?
實際上,我想(抽象)基類可以稱爲
Derived.InitializeComponent();
畢竟,當它在基類的構造(調試),它知道,它是一個派生的實例。 ..
有點危險......基類構造函數會調用最派生的虛擬實現。這意味着子類「InitializeComponent」方法將在子類的構造函數本身之前被調用,這是任何向子類構造函數中添加邏輯的人的時間炸彈。 – 2008-10-31 19:27:47