为什么在以下代码中调用Derived中的静态构造函数?
class Base
{
public static Base Instance;
static Base() { Console.WriteLine("Static Base invoked."); }
}
class Derived : Base
{
static Derived() {
Instance = new Derived();
Console.WriteLine("Static Derived invoked.");
}
}
void Main()
{
var instance = Derived.Instance;
}
OUTPUT:
Static Base invoked.
答案 0 :(得分:2)
这是因为通过派生类访问基类的静态成员实际上是编译为通过基类,即声明该成员的基类。
因此,这个:
$('#city').parent().prev('td').find("label").text();
实际上是这样编译的:
Derived.Instance
因此没有代码触及Base.Instance
,这就是为什么不调用静态构造函数的原因。
以下是您的Main方法的编译方式(发布):
Derived