hola,
Podrias realizar algo como esto:
Me parecio raro el codigo cuando vi el metodo Porcesar() ahi colgado de la nada, a alguien debe pertenecer, y es a la abstracta.
Por supuesto lo bueno del virtual es que podras sobreescribirlo si necesitas algo custom en cada clase que heredes.
Saludos
Leandro Tuttini
Podrias realizar algo como esto:
namespace Test |
{ |
public abstract class EntidadIdentificada<T> |
{ |
public T Identificador { get; set; } |
public static virtual R Procesar<R>(T param) |
{ |
return new R(); |
} |
} |
public class EntidadConcreta : EntidadIdentificada<Int32> |
{ |
public static override R Procesar<R>(int param) |
{ |
return base.Procesar<R>(param); |
} |
} |
public class OtraEntidadConcreta : EntidadIdentificada<String> |
{ |
} |
public class Test |
{ |
public void TestClass() |
{ |
EntidadConcreta unObjeto = EntidadConcreta.Procesar<EntidadConcreta>(5); |
OtraEntidadConcreta otroObjeto = OtraEntidadConcreta.Procesar<OtraEntidadConcreta>("cinco"); |
} |
} |
} |
Me parecio raro el codigo cuando vi el metodo Porcesar() ahi colgado de la nada, a alguien debe pertenecer, y es a la abstracta.
Por supuesto lo bueno del virtual es que podras sobreescribirlo si necesitas algo custom en cada clase que heredes.
Saludos
Leandro Tuttini