Dati i seguenti classi:Perché un costruttore statico non è invocato su una classe utilizzata come parametro di tipo generico?
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>();
}
}
l'uscita è
Foo is being referenced as a generic type parameter
Questo ha senso, secondo la specifica:
Un costruttore statico viene chiamato automaticamente per inizializzare la classe prima la prima istanza viene creata o qualsiasi membro statico viene referenziato.
Ma sono curioso del motivo per cui il costruttore statico non viene richiamato quando si fa riferimento al tipo come parametro di tipo generico.
Buona domanda amico, questo un po 'me oggi –