给定以下类:
public class Foo {
static Foo() {
Console.WriteLine("Foo is being constructed");
}
}
public class Bar {
public void ReferenceFooAsGenericTypeParameter<T>() {
Console.WriteLine("Foo is being referenced as a generic type parameter");
}
}
public class SampleClass
{
public static void Main()
{
new Bar().ReferenceFooAsGenericTypeParameter<Foo>();
}
}
输出是
Foo 被引用为泛型类型参数
根据规范,这是有道理的:
在创建第一个实例或引用任何静态成员之前,会自动调用静态构造函数来初始化类。
但是我很好奇为什么当类型被引用为泛型类型参数时不调用静态构造函数。