我有一个抽象基类,继承自UserControl
,然后用它派生许多类。创建派生控件
我的问题是如何优雅地确保生成的函数InitializeComponent()
被称为每层的类。
所以(抽象)基类有一些控件,将为所有孩子共享。当创建子类的实例,基构造函数首先被调用,但有什么办法能够完美地调用派生InitializeComponent()
,而无需有效地建立相同构造的每一个派生类
public DerivedClass() {
InitializeComponent();
}
我想知道如果在每个派生类中重复自己的方法更有效吗?
实际上,我想(抽象)基类可以称为
Derived.InitializeComponent();
毕竟,当它在基类的构造(调试),它知道,它是一个派生的实例。 ..
有点危险......基类构造函数会调用最派生的虚拟实现。这意味着子类“InitializeComponent”方法将在子类的构造函数本身之前被调用,这是任何向子类构造函数中添加逻辑的人的时间炸弹。 – 2008-10-31 19:27:47