Dadas las siguientes clases:¿Por qué no se invoca un constructor estático en una clase utilizada como parámetro de tipo genérico?
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>();
}
}
la salida es
Foo is being referenced as a generic type parameter
Esto tiene sentido, de acuerdo con la especificación:
Un constructor estático es llamado automáticamente para inicializar la clase antes se crea la primera instancia o se hace referencia a cualquier miembro estático.
Pero tengo curiosidad de por qué el constructor estático no se invoca cuando se hace referencia al tipo como un parámetro de tipo genérico.
Buena pregunta compañero, este me mordió hoy –