Я работаю над проблемой транспортировки и не могу прыгнуть с этой препятствия. Я не могу преобразовать производный класс StopsVisited в его базовый класс Остановки. Базовый класс Stops - это коллекция Stop. Полученный класс StopsVisited представляет собой набор StopVisited.Невозможно преобразовать производный класс в базовый класс
Элемент StopVisited имеет значение Stop (определения не показаны).
У меня есть обходное правило, в котором я просто получаю StopsVisited из Stops, но дженерики дают мне больше свободы. Я попытался уменьшить его до самой простой формы.
Base
public abstract class Stops<T> where T : Stop
{
}
производный
public class StopsVisited : Stops<StopVisited>
{
}
Проблема:
Stops<Stop> stops = new StopsVisited();
дает мне ошибку
1 Не может неявно преобразовать тип «StopsHeirarchy.StopsVisited» в «StopsHeirarchy.Stops»
Любая помощь приветствуется.
Если остановки - это всего лишь список объектов остановки, почему бы просто не использовать IList? – 2009-12-23 21:56:58
Еще одна проблема ковариации дженериков ... см. Мой ответ здесь - http://stackoverflow.com/questions/1443341/explicit-casting-problem/1443351#1443351 – thecoop