public abstract class A {
public A() {
// do stuff
}
}
public class B : A {
// let implicit constructor of class B also call base()
}
我希望派生类的隐式构造函数调用base()。我如何在c#中完成此操作而不为派生类B创建显式构造函数?
它已经做到了;让我们通过sharplab.io运行代码,并查看IL B
:
.class public auto ansi beforefieldinit B
extends A
{
// Methods
.method public hidebysig specialname rtspecialname
instance void .ctor () cil managed
{
// Method begins at RVA 0x2058
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void A::.ctor()
IL_0006: ret
} // end of method B::.ctor
} // end of class B
我们在这里可以看到B
有一个公共的无参数构造函数,该构造函数调用A
的无参数构造函数(位于IL_0001
)。本质上,
public class B : A {
}
是简写
public class B : A {
public B() : base() {}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句