是否可以在子类的构造函数中的特定点调用基本构造函数,如:
public class SuperClass
{
public SuperClass(Object myObject)
{
// init some values ...
}
}
public class SubClass: SuperClass
{
public SubClass(): base(Object myObject)
{
//Check some preconditions
base(myObject);
// Do some other stuff
}
}
答案 0 :(得分:2)
不,这是不可能的。
实现此行为的一种方法是,您可以将基础构造函数的内容提取到方法中,然后从子类中调用该方法。
另一种不太紧密联系的方法是在这里不使用继承。这可能是一种组合更有意义的情况。 (虽然不知道更多信息,但不可能肯定地说。)
答案 1 :(得分:1)
不,因为在//Check some preconditions
你有一个部分构造的对象。这会导致各种各样的问题。
答案 2 :(得分:0)
正确的语法是
public class SubClass: SuperClass
{
public SubClass(object myObject): base(myObject)
{
}
}
Here is link使用构造函数。直接在ctor的身体中调用它是不可能的。