我对OOP还不熟悉,并想知道您是否可以提供以下最佳解决方案的帮助。
public class GenericClass
{
private List<GenericListItem> _listItems;
}
public class SpecificClass : GenericClass
{
// I'd like to change the listItems specialisation to SpecificListItem (inherits from GenericListItem)
}
我如何才能实现集合专业化的变化?我是否应该在添加到集合时创建虚方法并覆盖以指定正确的类型(SpecificListItem)?然后在访问它时将它转换为SpecificListItem?
请接受我的道歉,这是我的第一篇文章,因此可能含糊不清。如果我需要提供更多信息,请告诉我。另外,对于我对这个问题的无知感到抱歉!
非常感谢,
萨姆
答案 0 :(得分:2)
您可能希望将GenericClass设为通用:
public class GenericClass<T> where T : GenericListItem
{
private List<T> _listItems;
}
public class SpecificClass : GenericClass<SpecificListItem>
{
// ...
}
这可能适合也可能不适合 - 它实际上取决于你想对列表做什么,以及这些类首先负责的是什么。