Как я могу уменьшить список объектов, чтобы каждый из объектов в списке преобразовывался в объект производного класса?
Это сценарий.
У меня есть базовый класс со списком List
базовых элементов, и два класса, унаследованных от него:
public class BaseClass
{
public List<BaseItem> items;
protected BaseClass()
{
// some code to build list of items
}
}
public class DerivedClass : BaseClass
{
public DerivedClass : base() {}
}
public class AnotherDerivedClass : BaseClass
{
public AnotherDerivedClass : base() {}
}
public class BaseItem {}
public class DerivedItem : BaseItem {}
public class AnotherDerivedItem : BaseItem {}
Идея состоит в том, чтобы не дублировать код, необходимый для построения списка элементов. BaseItem
содержит все необходимое, и я всегда могу преобразовать BaseItem
в один из производных элементов.
Проблема возникает, когда у меня есть их список. Список
из BaseItem
объявлен в BaseClass
, потому что он должен быть у всех производных классов. Но при доступе к нему во время выполнения я не могу переключиться на производный класс.