Crear clases Derivadas desde clase Base, ¿posible?

27/01/2006 - 14:04 por Paco Ferre | Informe spam
Hola a todos,

Partiendo de una situación que funciona, aunque es un ejemplo tonto.

public class Base
{
public virtual Base CrearNueva()
{
}
}

public class DerivadaPrimera : Base
{
public override Base CrearNueva()
{
return new DerivadaPrimera();
}
}

public class DerivadaSegunda : Base
{
public override Base CrearNueva()
{
return new DerivadaSegunda();
}
}
... (y un montón más).

¿Cómo podría hacerse para no tener que escribir el método
CrearNueva en cada una de las clases derivadas?, no me gusta escribir
código "copia-pega".

Algo así como:
public class Base
{
public virtual Base CrearNueva()
{
return new LACLASEDE(this);
}
}

Es solo una curiosidad, imagino que aquí entra Reflection... y hasta
aquí he llegao en mis 10 minutos de reflexión, jeje.

Muchas gracias,

Paco Ferre
MAD.NUG
 

Leer las respuestas

#1 Jose Luis Manners
27/01/2006 - 15:03 | Informe spam
No definas el método como virtual.

-
Coopera con el foro. Dinos si te sirvió la respuesta aquí planteada.
-

Saludos,

Jose Luis Manners, MCP
http://www.josemanners.com/

"Vale más saber alguna cosa de todo, que saberlo todo de una sola cosa."
-Blaise Pascal

"Paco Ferre" wrote in message
news:
Hola a todos,

Partiendo de una situación que funciona, aunque es un ejemplo tonto.

public class Base
{
public virtual Base CrearNueva()
{
}
}

public class DerivadaPrimera : Base
{
public override Base CrearNueva()
{
return new DerivadaPrimera();
}
}

public class DerivadaSegunda : Base
{
public override Base CrearNueva()
{
return new DerivadaSegunda();
}
}
... (y un montón más).

¿Cómo podría hacerse para no tener que escribir el método
CrearNueva en cada una de las clases derivadas?, no me gusta escribir
código "copia-pega".

Algo así como:
public class Base
{
public virtual Base CrearNueva()
{
return new LACLASEDE(this);
}
}

Es solo una curiosidad, imagino que aquí entra Reflection... y hasta
aquí he llegao en mis 10 minutos de reflexión, jeje.

Muchas gracias,

Paco Ferre
MAD.NUG

Preguntas similares