为什么 var b = new B()
首先进入 static B()
.ctor 而不是 static A ()
.ctor
而不是像实例构造函数那样反之亦然 (public A()
而不是 < strong>public B()
)?
public class A
{
static A() {}
public A() {}
}
public class B : A
{
static B() {}
public B() {}
}
最佳答案
从技术上讲,首先输入B
的实例构造函数。但它做的第一件事是调用 A
的构造函数,然后才转到用户定义的主体。
所以我假设在 B
的构造函数被输入之前,B
的静态构造函数需要运行。
然后B
的构造函数调用A
的构造函数,从而触发A
的静态构造函数。
关于c# - 为什么进入静态 .ctors 的顺序与继承类中的实例 .ctors 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9141092/