Учитывая следующие классы:
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
Это имеет смысл, согласно спецификации:
Статический конструктор вызывается автоматически для инициализации класса до создания первого экземпляра или ссылки на любые статические члены.
Но мне любопытно, почему статический конструктор не вызывается, когда тип ссылается как общий тип типа.