C# 中的多级继承构造函数

lan*_*r16 2 c# inheritance constructor

C#中有没有办法调用祖父的构造函数?假设我有:

public class A
{
   public A(parameterX x)
   {
      doSomething();
   }
}

public class B : A
{
   public B(parameterX x) : base(x)
   {
      doSomethingElse();
   }
}
Run Code Online (Sandbox Code Playgroud)

然后我有:

public class C : B
{
}
Run Code Online (Sandbox Code Playgroud)

我希望 C 中的构造函数调用 A 中的构造函数,我可以用什么来实现这个目的?有没有类似的东西:

public C(parameterX x) : base : base(x)
Run Code Online (Sandbox Code Playgroud)

或者我怎样才能从C调用A中的构造函数?

谢谢。

SLa*_*aks 5

您不能调用祖父母类的构造函数。
但是,您也不需要这样做,因为基类已经这样做了。

当你写的时候public C(parameterX x) : base(x),它会调用B(x),而它又会调用A(x)

一般来说,由于您的基类的构造函数将始终调用其基构造函数(您的祖父母),因此能够显式调用祖父母构造函数是没有意义的,因为这最终会构造它两次。