0

我正在玩几个对象的组合。

我有两个课程(笔记和任务)。Task 类派生自 Note 类,因为任务是扩展的注释。

每个便笺都有一个属性Property Child as list (of note),因为可以将便笺或任务添加到现有便笺或任务中(因此,此“子”便笺可能是任务或便笺)

IE。

dim x as new note()

x.Child.item(0).Child.item(0).Child.item(0).description.ToString()

最后的子笔记对象实际上是一个任务,我怎样才能使这个聚合工作?我不在乎它是笔记还是任务,但我想释放基类或扩展类的功能。

我的直接想法是每个对象都需要有一个任务列表和一个笔记列表,但感觉可能有一个更优雅的解决方案。

有人对此有任何想法吗?

4

2 回答 2

0

如果我对您的理解正确,您应该使用我们 C# 人员所谓的虚拟方法/属性来实现您的类的行为......本质上他们使用后期绑定调用,以便从正确的类调用适当的功能 - 是父类或派生类。

我认为VB.Net equivilent 是“Overrideable”和“Overrides”。

于 2012-05-18T08:43:40.337 回答
0

您收集的 Note 对象应该已经为您提供了您想要的东西。

如果您需要区分 Note 和 Task,您可以询问实例是否是“typeof”任务,然后适当地进行转换以获取派生属性和方法。

如果您需要的方法和属性是基类的一部分,则不需要强制转换,您可以依靠多态性来调用适合类型的方法/属性。

于 2012-05-18T09:53:34.060 回答