为了这个例子的缘故,假设我们正在做一个虚拟的游戏Clue™。我们为豪宅中的每个房间设置一个班级,并在每个房间中为嫌疑人和武器分配一个班级。喜欢的东西:一个类和它的嵌套类的构造函数
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;
}
}
之前将犯罪嫌疑人与武器类,房间构造看起来是这样的:
public Room(string Name, int Width, int Height)
{
this.Name = Name;
this.Width = Width;
this.Height = Height;
}
初始化以前那样简单的房间:Room[i] = new Room("Conservatory", 7, 3);
- 但嵌套类是后介绍,他们的初始化可以通过与主类共享构造函数来处理?类似于:
Room[i] = new Room("Library", 8, 5, "Professor Plum", true, "Candlestick", true);
我似乎无法找到类似设置的任何示例。我怎样才能做到这一点?
你在找这样的事情ParentClass.ChildClass childClass =新ParentClass.ChildClass(); – HatSoft 2012-07-13 15:48:11
嵌套类与其父类没有特别的关系。除了你可以声明它是私人的,因此完全隐藏它。而且它可以访问外部类的私人成员。就是这样,没有一个“共享构造函数”有意义的场景。将角色类作为房间的私人实现细节也没有意义。 – 2012-07-13 15:48:12
你没有发现任何的例子,因为没有人能写出这样的例子,编译器怎么知道“梅花教授”应作为价值的Suspect.Name财产? (我想,这是你的意图) – Steve 2012-07-13 15:48:22