【发布时间】:2014-05-13 05:14:31
【问题描述】:
伙计们,我不确定我是否遗漏了任何重要的 OOP 概念,如果我遗漏了什么,请指导我。 我有一个基类和一些继承类如下
Class Shape {}
Class Arc:Shape{}
Class Line:Shape{}
现在我想为所有生成的形状创建一个容器(列表),然后当我回读时,我会将对象转换为某种类型。最好的方法是什么。泛型是我下面显示的唯一方法吗?请帮忙
SortedList shapeList;
public int addShapes(Shape item) {shapeList.Add(ItemID, item);}
【问题讨论】:
-
通用容器和 OOP 的要点是您不需要将对象强制转换回来,因为对象的行为会根据它们的实际类发生变化,即使通过基类引用调用也是如此。
-
“是泛型是我在下面展示的唯一方法” - 你没有展示任何泛型的使用。请注意,
SortedList<,>也确实是一个键/值映射...如果您只想要一个列表,为什么不使用List<T>? -
您的容器应该是
List<Shape>或另一个已经存在的通用容器。 -
@JonSkeet,是的,你是对的