【发布时间】:2009-12-24 06:07:00
【问题描述】:
我正在解决交通问题,无法跨越这个障碍。我无法将派生类 StopsVisited 转换为其基类 Stops。基类 Stops 是 Stop 的集合。派生类 StopsVisited 是 StopVisited 的集合。
StopVisited 元素派生自 Stop(未显示定义)。
我有一个非泛型解决方法,我只是从 Stops 派生 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?
-
另一个泛型协方差问题...在这里查看我的答案 - stackoverflow.com/questions/1443341/explicit-casting-problem/…