考慮以下類:爲什麼不是在用作泛型類型參數的類上調用靜態構造函數?
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 is being referenced as a generic type parameter
這是有道理的,依據規範:
靜態構造函數被自動調用之前初始化類第一個實例被創建或者任何靜態成員被引用。
但我很好奇爲什麼當類型被引用爲泛型類型參數時不會調用靜態構造函數。
良好的問題伴侶,今天有一點點我 – 2016-07-06 02:40:47