Ho bisogno di una classe base con una proprietà in cui è possibile derivare classi con la stessa proprietà ma tipi diversi (compatibili). La classe base può essere astratta.Ignora proprietà con diverso tipo compatibile
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>();
//...
}
}
ho provato con Generics ma che mi dà un problema quando si utilizza la classe, perché voglio per memorizzare le classi di base in modo diverso digitati nella 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: questa è una soluzione pulita al problema in questione. Separa la classe base dalla parte generica. –