【发布时间】:2013-05-18 12:49:56
【问题描述】:
我目前正在尝试构造一个派生自不同对象的对象,但在调用基本构造函数之前,我想进行一些参数验证。
public FuelMotorCycle(string owner) : base(owner)
{
argumentValidation(owner);
}
现在我明白了,最初是先调用基本构造函数,有没有办法只能在argumentValidation方法之后调用它?
【问题讨论】:
-
base构造将首先发生。 -
您可以随时按 F5 自行查看。
-
不,你不能轻易做到这一点。 (正如一些人所提到的,有一些偷偷摸摸的把戏。)但这有什么关系呢?如果参数对于基本构造函数无效,它将抛出。如果它们对基构造函数无效但对派生构造函数无效,它将抛出。无论哪种方式,它都会抛出。而且由于导致 ctor 抛出的程序是 buggy,它永远不会发送给客户,那么抛出的时间早或晚又有什么关系呢?
标签: c# inheritance