Sobre Generics y constructores

21/01/2006 - 19:26 por Benton | Informe spam
Hola,

Dada una clase así:

public class Algo<T> where T: new()
{
void HacerAlgo()
{
T = new T();
}
...
}

¿Qué pasa si el constructor del tipo definitivo requiere un parámetro? Por
ejemplo quisiera hacer esto:

DataRow row = Tabla.NewRow();
T = new T(row);

¿Puede hacerse?

Saludos,

-Benton
 

Leer las respuestas

#1 A.Poblacion
22/01/2006 - 11:21 | Informe spam
"Benton" wrote in message
news:
Dada una clase así:

public class Algo<T> where T: new()
{
void HacerAlgo()
{
T = new T();
}
...
}

¿Qué pasa si el constructor del tipo definitivo requiere un parámetro? Por
ejemplo quisiera hacer esto:

DataRow row = Tabla.NewRow();
T = new T(row);

¿Puede hacerse?



No, el compilador te va a dar un error en esa linea diciendo que no se
sabe que T tenga un constructor que acepte un DataRow.

Si tienes control sobre las clases que estás pasando, podrías hacer que
todas heredaran de una misma clase madre, y en el "where" del template
indicar que T hereda de dicha clase madre. La clase madre puede tener un
constructor con parámetros.

Preguntas similares