C#数据结构 - 引用调用对象属性的最佳方法是什么?

时间:2015-01-21 22:59:11

标签: c#

我的数据目前结构如下:

class A
{
    B[] bArray;
    C[] cArray;

    A()
    {
        fillB();
        fillC();
    }
}
class C
{
    X[] x;

    insertX() // adds an X element to the x array
    {
        X newX = new X();
        newX.b = findB(searchParam); // returns the matching element from bArray
        // the rest of the code adds newX to array x
    }
}
class X
{
    B b {get;set;} // reference to an element bArray
}

这是当前数据结构的方式。我遇到的问题是我不确定

  1. 如果我正确地构建了这个
  2. 放置findB函数的位置。 findB函数最初在A类中,但A类是调用对象。
  3. 非常感谢任何帮助。我是新问的有关代码的问题,请耐心等待。

1 个答案:

答案 0 :(得分:0)

正在撰写/聚合的对象通常不会了解他们的父母。所以不,我不会说你的结构非常好。

也就是说,在您的示例中,C 不知道它是由A创建的,因此对bArray一无所知。根据具体情况,这应该是

现在,您可以传递A的{​​{1}}引用:

C

再次将class C { A parent; X[] x; public C(A parent) { this.parent = parent; } insertX() // adds an X element to the x array { X newX = new X(); newX.b = parent.findB(searchParam); // returns the matching element from bArray // the rest of the code adds newX to array x } } 放入findB。应该去哪里,因为它只知道A唯一的

但是那些紧张的夫妻bArrayC。在你的情况下可能没问题,也可能没有。一般而言,应避免像这样的紧耦合。如果没有更好的类名/背景,就不可能说出你的情况会有更好的设计。