在C#中的任何方式使编译器标志构造函数不调用基类构造函数?

Rob*_*ler 0 c# constructor

是否有任何设置会使C#编译器标志派生类构造函数不调用基类构造函数?我经常得到这个,特别是对于具有多个构造函数的派生类.

Jar*_*Par 7

C#中的类构造函数将始终调用基类构造函数(对象除外).用户代码中的调用可能不明确,但它将存在于发出的IL中.这仅适用于参数less构造函数,但必须显式调用带参数的构造函数.

没有办法强制派生类型显式调用基类型参数less构造函数,因为语言允许隐式调用它.但是,您可以迫使他们打电话给一个通过使参数的构造函数私有基类的构造函数

abstract class Parent { 
  private Parent() { } 

  // Base classes will be forced to explicitly call this one
  protected Parent(/* some parameter */) {  } 
}
Run Code Online (Sandbox Code Playgroud)