我正在处理运输问题,无法跨越此障碍。我无法将派生类StopsVisited转换为其基类停止。基类Stops是Stop的集合。派生类StopsVisited是StopVisited的集合。无法将派生类转换为基类
StopVisited元素来自Stop(定义未显示)。
我有一个非泛型的解决方法,我简单地从停止派生StopsVisited,但泛型给了我更多的灵活性。我试图将它简化为最简单的形式。
基地
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 2009-12-23 22:16:29