Acabo de empezar con C# 4.0 (RC) y llegar a este problema:constructores con valores por defecto en C# 4.0
class Class1 { public Class1() { } }
class Class2 { public Class2(string param1) { } }
class Class3 { public Class3(string param1 = "default") { } }
Type[] types = new Type[] { typeof(Class1), typeof(Class2), typeof(Class3) };
// Problem starts here, main-method
for(int i = 0; i < types.Length; i++)
{
ConstructorInfo ctr = provider.GetConstructor(Type.EmptyTypes);
Console.WriteLine(ctr == null ? "null" : ctr.Name);
}
Nota, nunca he probado este código real, pero acabo de ver los resultados de hacer GetConstructor usando la depuración en VS2010
Esto es perfecto para las dos primeras clases (1 y 2), la primera imprime el nombre de un objeto ConstructorInfo del constructor sin parámetros de Clase 1, la segunda imprime nula. Sin embargo, el problema surge con el tercero, porque lo que realmente quiero es no saber si toma 0 parámetros o no, pero es si I puede crear una instancia de la clase sin ningún parámetro. ¿Cómo puedo hacer eso?