1

セルのリストがあり、各リストにはステーションのリストがあります。

ステーションの親セルを取得する必要がある場合があります。

この階層をどのように実装しますか?

  • 親セルをステーションオブジェクトのプロパティとして保持する必要がありますか?
  • ステーションオブジェクトには親セルIDのみを保持する必要がありますか?
  • 何か違うことはありますか?
4

3 に答える 3

5

私があなたなら、2つのクラスを作成します。

public class Cell {
 ...
  public List<Station> Stations {
    get {...}
  }

  protected Station AddStation() {
     Station result = new Station(this);
     Stations.Add(result);
     return result;
  }
}

public class Station {
  public Station(Cell cell) {
    this.cell = cell;
  }
  Cell cell;
  public Cell Cell {get {return cell;}}
}

この構造により、StationオブジェクトからいつでもCellにアクセスできます。

于 2012-05-31T12:53:34.183 に答える
2

Stationからに戻る必要がCellある場合は、Stationオブジェクトに親セルに設定されたParentCell(または)プロパティが必要です。Cell

于 2012-05-31T12:52:43.807 に答える
1

別の答えが必要な場合は、実際の構成なしで階層を実装できる方法があります。各メソッドがCellをパラメータとして受け入れるステーションオブジェクトを作成します。次に例を示します。

public void DoStuff(whatever x, Cell parent)
{

}

各ステーションはその親セルのコンテキストで評価されますが、同じStationオブジェクトを使用して、階層内の異なるステーションを表すことができます。

このソリューションは、多様性のために提供されています。ほとんどの場合、上で提案したように、進むべき道は作曲です。また、IdではなくCell自体を使用する必要があると思います。

于 2012-05-31T12:59:01.343 に答える