title: One Constructor for a Class and its Nested Classes
body: <p>For the sake of this example, suppose we're making a dumbed-down game of <em>Clue™</em>.  We have a class for each Room in the mansion, and subclasses for the Suspect and Weapon in each Room. Something like:</p>
  
  <pre><code>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;
    }
  }
  </code></pre>
  
  <p>Before adding the Suspect and Weapon classes, the Room constructor looked something like:</p>
  
  <pre><code>public Room(string Name, int Width, int Height)
  {
    this.Name = Name;
    this.Width = Width;
    this.Height = Height;
  }
  </code></pre>
  
  <p>Initializing a room used to be as simple as: <code>Room[i] = new Room("Conservatory", 7, 3);</code> - but after the nested classes were introduced, can their initialization be handled through a shared constructor with the main class? Something like:</p>
  
  <pre><code>Room[i] = new Room("Library", 8, 5, "Professor Plum", true, "Candlestick", true);
  </code></pre>
  
  <p>I can't seem to find any examples of a similar setup. How can I accomplish this?</p>