【发布时间】:2012-11-06 00:30:18
【问题描述】:
在某些情况下 - 这是对先前问题的扩展。
override List<baseClass> with List<derivedClass>
不管怎样,
我有一个通用的基类“场景”
public class Scene<T> where T: SceneModel { }
我还有两个继承自这个的类:
public class WorldScene : Scene<WorldModel> { }
public class BattleScene : Scene<BattleModel> { }
现在我需要做的是拥有一个List<Scene<SceneModel>>,其中包含 WorldScene 和 BattleScene 的混合物。在需要列表的地方,我显然只需要使用 WorldScene 和 BattleScene 共有的属性/方法。
我知道它们是两个截然不同的对象 - 但鉴于它们继承自同一个东西 - 我希望有一些聪明的方法可以以这种方式对它们进行分组,而无需手动将它们转换为第三种类型。
【问题讨论】:
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
你能不能只创建一个battlescene和worlscene的父类的列表。父级将包含常用方法。由于 battelscene 和 worldscene 也是它们的父对象,因此您可以将它们存储在列表中并调用常用方法。
标签: c# list generics inheritance