我有一个 BasePage 类,所有其他页面都来自:
public class BasePage
此 BasePage 有一个构造函数,其中包含必须始终运行的代码:
public BasePage()
{
// Important code here
}
我想强制派生类调用基构造函数,如下所示:
public MyPage
: base()
{
// Page specific code here
}
我该如何强制执行(最好在编译时)?
我有一个 BasePage 类,所有其他页面都来自:
public class BasePage
此 BasePage 有一个构造函数,其中包含必须始终运行的代码:
public BasePage()
{
// Important code here
}
我想强制派生类调用基构造函数,如下所示:
public MyPage
: base()
{
// Page specific code here
}
我该如何强制执行(最好在编译时)?
基本构造函数总是会在某个时候被调用。如果你调用this(...)
而不是base(...)
调用同一个类中的另一个构造函数 - 这又将不得不调用另一个同级构造函数或父构造函数。迟早你总会遇到一个构造函数,它要么base(...)
显式调用,要么隐式调用基类的无参数构造函数。
有关构造函数链接的更多信息,请参阅本文,包括各个位的执行点(例如变量初始值设定项)。
如果您没有显式调用任何其他带参数的基类构造函数,则不带参数的基类构造函数会自动运行。
基类构造函数总是被调用,即使你没有显式调用它。所以你不需要做任何额外的工作来确保发生这种情况。
始终需要调用基本构造函数之一,并且在未明确说明基本构造函数时调用默认构造函数。
编辑:为了清楚起见,重新措辞。