Мне нужен базовый класс с свойством, в котором я могу получить классы с тем же свойством, но с разными (совместимыми) типами. Базовый класс может быть абстрактным.
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>();
//...
}
}
Я попробовал его с помощью Generics, но это создает проблемы при использовании класса, потому что я хочу хранить в List List по-разному типизированные базовые классы.
public class BaseG<T>
{
public T prop { get; set; }
}
public class UseIt
{
public void use()
{
List<BaseG> l = new List<BaseG>(); // requires type argument
//...
}
}