Estoy usando Type.GetConstructor(Type.EmptyTypes)
para obtener el constructor predeterminado para una clase. Funciona si la clase tiene un constructor predeterminado sin parámetros (class A
). Pero no funciona si una clase tiene un constructor con todos los parámetros opcionales (class B
). El programa no sabe cuáles son los parámetros opcionales porque solo necesita el constructor predeterminado. ¿Qué declaraciones puedo usar para que funcione en ambos casos? Gracias, agradezco cualquier ayuda!Cómo obtener el constructor predeterminado cuando los parámetros son opcionales
public class A
{
public A() {}
}
public class B
{
public B(int i = 0, string str = "") {}
}
Gracias por todas las respuestas, son muy informativas. Como estas son clases generadas automáticamente, acabo de cambiarla para incluir siempre un constructor sin parámetro. – dlsou
También tenga en cuenta que su clase 'B' no se puede utilizar en genérico para un parámetro de tipo' T' si 'T' tiene la restricción' donde T: new() '. El constructor de instancias públicas no se considera sin parámetros solo porque todos sus parámetros son opcionales. –