2

Starというクラスがあり、

public List<Planet> Planets = new List<Planet>();

必要な変数を使用して惑星を作成するメソッドがありますが、惑星クラスでアクセスできる星に関する情報の一部が必要です。

現在、「プラネット クラス」を構成する 4 つの変数がありますが、「プラネット クラス」で利用可能な「スター クラス」から約 6 個の変数が必要です。

惑星クラスの親星への参照を持つ方法はありますか? Planetへの参照を渡すにはどうすればよいですか?

ありがとう!

4

4 に答える 4

0

Planet クラスに Star への参照を含めることができます。次に、次のように、その参照を受け取るコンストラクターを作成できます。

public class Planet
{
   private Star orbits;

   ...

   public Planet(Star orbits)
   {
      this.orbits = orbits;
      ...
   }

   ...
}

次に、次のように Star からインスタンス化できます。

public List<Planet> Planets = new List<Planet>(this);
于 2013-09-03T02:48:20.140 に答える
0

これを実現する方法はたくさんありますが、アイデアは 1 つだけです。

コンストラクターのパラメーターを次のようにするのはどうでしょうか。

private List<Star> _solarSystem;   

Planet(List<Star> solarSystem)
{
    this._solarSystem = solarSystem;
}

OO の観点からは、リストの代わりにクラスを使用することをお勧めします。あなたが投稿したコードもいくつかのクラスにあると思いますが、あなたのクラスはどのように呼び出されますか?

private SolarSystem _solarSystem;   

Planet(SolarSystem solarSystem)
{
    this._solarSystem = solarSystem;
}
于 2013-09-03T02:49:23.527 に答える
0

次のように辞書を使用します。

IDictionary<Star, IList<Planet>> planetSystems = new Dictionary<Star, IList<Planet>>();
于 2013-09-03T08:52:21.743 に答える