引用多个集合中的对象,并使每个集合中的顺序影响某些属性

时间:2013-03-12 16:56:13

标签: c# .net vb.net oop

这很难解释。

我有一个盒子集合,每个盒子都有自己的内容。该框可以出现在多个架子上,如果内容发生变化,我想全局反映这些变化。

所以我有一个全球性的盒子集合,从中我也为每个架子创建了一个盒子集合。

我的问题是知道盒子放在每个架子上的位置。让我们担心X的位置。

在一个案例中,我的盒子可能坐在架子的中间,而X的位置是44厘米。 在另一种情况下,同一个盒子可能位于架子的开头,而它的X位置是0。

我需要以Shelf(id).Box(id).PosX

的形式访问它

但这总是会给出一个答案,答案应该根据父母的架子而改变。

我知道这个问题有很多答案,但我希望有人比我一直在计划的事情更优雅。

1 个答案:

答案 0 :(得分:2)

盒子应该知道它在哪里吗?可能不是 - 你应该可以向货架询问其内容,这意味着询问货架所在的货架。

myShelf.GetBoxPosition(boxId).PosX

因此该框没有任何位置信息,这是有意义的,因为它可以在多个位置。货架知道其内容的位置,并可以回答您的问题。

这里的假设是盒子不会在同一个架子上多次出现 - 否则它必须返回一个盒子位置的集合,而不是一个盒子位置。