Necesito una clase base con una propiedad donde puedo derivar clases con la misma propiedad pero tipos diferentes (compatibles). La clase base puede ser abstracta.Anular propiedad con diferente tipo compatible
public class Base
{
public virtual object prop { get; set; }
}
public class StrBase : Base
{
public override string prop { get; set; } // compiler error
}
public class UseIt
{
public void use()
{
List<Base> l = new List<Base>();
//...
}
}
he probado con los genéricos, pero eso me da un problema cuando se utiliza la clase, porque quiero almacenar clases base diferente mecanografiadas en la Lista.
public class BaseG<T>
{
public T prop { get; set; }
}
public class UseIt
{
public void use()
{
List<BaseG> l = new List<BaseG>(); // requires type argument
//...
}
}
+1: Esta es una solución limpia al problema en cuestión. Separe la clase base de la parte genérica. –