为什么var b = new B()
首先进入 static B()
.ctor而不是 static A()
.ctor
,而不是反之亦然实例构造函数( public A()
而不是 public B()
)?
public class A
{
static A() {}
public A() {}
}
public class B : A
{
static B() {}
public B() {}
}
答案 0 :(得分:2)
从技术上讲,首先输入B
的实例构造函数。但它首先要做的是调用A
的构造函数,然后才转到用户定义的主体。
所以我假设在输入B
的构造函数之前,B
的静态构造函数需要运行。
然后B
的构造函数调用A
的构造函数,它触发A
的静态构造函数。