在子类的构造函数中调用基本构造函数

时间:2012-09-18 13:39:01

标签: c# oop constructor

是否可以在子类的构造函数中的特定点调用基本构造函数,如:

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
  }
}

3 个答案:

答案 0 :(得分:2)

不,这是不可能的。

实现此行为的一种方法是,您可以将基础构造函数的内容提取到方法中,然后从子类中调用该方法。

另一种不太紧密联系的方法是在这里不使用继承。这可能是一种组合更有意义的情况。 (虽然不知道更多信息,但不可能肯定地说。)

答案 1 :(得分:1)

不,因为在//Check some preconditions你有一个部分构造的对象。这会导致各种各样的问题。

答案 2 :(得分:0)

正确的语法是

public class SubClass: SuperClass
{
  public SubClass(object myObject): base(myObject)
  {

  }
}

Here is link使用构造函数。直接在ctor的身体中调用它是不可能的。