使用數組和對象初始值設定項語法的組合,您可以在一個語句中完成所有操作,這對於實例化POCO是完全適當的。
var oHotel = new Hotel
{
Id = 100
room =
{
new Hotel.Room { RoomId = 1, RoomTypeid = 1, Name = "Name" }
}
};
如果想MITH多個房間來初始化你的酒店,
var oHotel = new Hotel
{
Id = 100
room =
{
new Hotel.Room { RoomId = 1, RoomTypeid = 1, Name = "A" },
new Hotel.Room { RoomId = 2, RoomTypeid = 1, Name = "B" },
new Hotel.Room { RoomId = 3, RoomTypeid = 2, Name = "C" },
new Hotel.Room { RoomId = 4, RoomTypeid = 2, Name = "D" }
}
};
順便說一句,你
public Room[] room { get; set; }
財產,應probbably被稱爲Rooms
。
如果不wan't使用波蘇斯,就像你在展示你的問題,我已經重寫你的類這樣的,使得它一成不變,
public class Hotel
{
private readonly int id;
private readonly IList<Room> rooms;
public Hotel(int id; IEnumerable<Room> rooms)
{
this.id = id;
this.rooms = rooms.ToList();
}
public int Id
{
get { return this.id; }
}
public IEnumerable<Room> Rooms
{
get { return this.rooms; }
}
public class Room
{
private readonly int id;
private readonly RoomType type;
private readonly string name;
public Room(int id, RoomType type, string name)
{
}
public int Id
{
get { return this.id; }
}
public RoomType Type
{
get { return this.type; }
}
public string Name
{
get { return this.name; }
}
}
public enum RoomType
{
// Valid Room Types Here,
// ...
}
}
那麼我這樣實例化,
var oHotel = new Hotel(
100,
{
new Hotel.Room(1, Hotel.RoomType..., "A"),
new Hotel.Room(2, Hotel.RoomType..., "B"),
new Hotel.Room(3, Hotel.RoomType..., "C"),
new Hotel.Room(4, Hotel.RoomType..., "D")
});
仍然在一個單一的聲明,但更緊湊。由此產生的對象將是不可改變的,這具有超出問題範圍的許多益處。
作爲說明:您應該爲每個類創建一個單獨的.cs文件。 – Kobunite
繼續搜索 –
嘗試Hotel.Room room = new Hotel.Room(); – Andrei