Преобразование списка объектов в C #

Как я могу уменьшить список объектов, чтобы каждый из объектов в списке преобразовывался в объект производного класса?

Это сценарий.

У меня есть базовый класс со списком 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 , потому что он должен быть у всех производных классов. Но при доступе к нему во время выполнения я не могу переключиться на производный класс.

9
задан Farinha 8 March 2011 в 14:55
поделиться