この例のために、Clue™のダンプダウンゲームを行っているとします。私たちには、大邸宅の各部屋のクラスと、各部屋の容疑者と武器のサブクラスがあります。ネストされたクラスがあった後、しかし - Room[i] = new Room("Conservatory", 7, 3);
:クラスとそのネストされたクラスの1つのコンストラクタ
public Room(string Name, int Width, int Height)
{
this.Name = Name;
this.Width = Width;
this.Height = Height;
}
は、のような単純なものに使用される部屋の初期化:
class Room
{
public string Name;
public int Width;
public int Height;
// and so on...
public class Suspect
{
public string Name;
public bool isPurple;
}
public class Weapon
{
public string Name;
public bool IsMetal;
}
}
容疑者と武器のクラスを追加する前に、ルームのコンストラクタは次のように見えた:何かのようにそれらの初期化は、メインクラスの共有コンストラクタによって処理できますか?次のようなものがあります。
Room[i] = new Room("Library", 8, 5, "Professor Plum", true, "Candlestick", true);
同様の設定の例はありません。どうすればこれを達成できますか?
このようなParentClass.ChildClassを探していますか?childClass = new ParentClass.ChildClass(); – HatSoft
ネストされたクラスは、その親クラスと特別な関係はありません。あなたはそれを非公開と宣言し、それを完全に隠すことができることを除いて。そして、それは外部クラスのプライベートメンバーにアクセスできます。つまり、「共有コンストラクタ」が理にかなっているシナリオはありません。また、文字クラスを部屋のプライベートな実装の詳細にすることも意味がありません。 –
例は見つかりません。なぜなら、 "Professor Plum"がSuspect.Nameプロパティの値として使用されるはずです。 – Steve