kay*_*man 5 c# base-class derived-class
我有这样的基类:
public class Scene
{
public IList<SceneModel> Models {get; set;}
}
public class SceneModel { }
Run Code Online (Sandbox Code Playgroud)
和派生类如下:
public class WorldScene : Scene
{
public override IList<WorldModel> Models {get; set;}
}
public class WorldModel : SceneModel { }
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,我该如何管理呢.目前编译器对此并不满意(说实话,无论如何它看起来有点奇怪).那么我正在努力做什么不可能?如果是这样,为什么?或者是否有可能,我只是以错误的方式去做?
你可以使用泛型
public class BaseScene<T>
where T : SceneModel
{
public IList<T> Models {get; set;}
}
public class Scene : BaseScene<SceneModel>
{
}
public class WorldScene : BaseScene<WorldModel>
{
}
Run Code Online (Sandbox Code Playgroud)
每种类型的场景将通过相应的模型类型进行参数化.因此,您将为每个场景提供强类型的模型列表.