Przy następujących klas:Dlaczego nie jest wywoływany konstruktor statyczny w klasie używanej jako ogólny parametr typu?
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>();
}
}
wyjście jest
Foo is being referenced as a generic type parameter
Ma to sens, w zależności od specyfikacji:
Statyczny konstruktor nazywa się automatycznie zainicjować klasę przed pierwsza instancja jest tworzona lub odwoływane są jakiekolwiek statyczne elementy.
Ale jestem ciekawy, dlaczego konstruktor statyczny nie jest wywoływany, gdy typ jest odwoływany jako typowy parametr typu.
Dobry kolega z pytaniem, ten jeden bit mnie dzisiaj –