16

我有一个 BasePage 类,所有其他页面都来自:

public class BasePage

此 BasePage 有一个构造函数,其中包含必须始终运行的代码:

public BasePage()
{
    // Important code here
}

我想强制派生类调用基构造函数,如下所示:

public MyPage
    : base()
{
    // Page specific code here
}

我该如何强制执行(最好在编译时)?

4

4 回答 4

29

基本构造函数总是会在某个时候被调用。如果你调用this(...)而不是base(...)调用同一个类中的另一个构造函数 - 这又将不得不调用另一个同级构造函数或父构造函数。迟早你总会遇到一个构造函数,它要么base(...)显式调用,要么隐式调用基类的无参数构造函数。

有关构造函数链接的更多信息,请参阅本文,包括各个位的执行点(例如变量初始值设定项)。

于 2008-11-27T15:48:53.817 回答
11

如果您没有显式调用任何其他带参数的基类构造函数,则不带参数的基类构造函数会自动运行。

于 2008-11-27T15:46:24.900 回答
3

基类构造函数总是被调用,即使你没有显式调用它。所以你不需要做任何额外的工作来确保发生这种情况。

于 2008-11-27T15:46:36.490 回答
1

始终需要调用基本构造函数之一,并且在未明确说明基本构造函数时调用默认构造函数。

编辑:为了清楚起见,重新措辞。

于 2008-11-27T15:47:15.333 回答