物件初始化是建構子以外的另一種選擇。語法如下所示。你在大括號內提供一串以逗號分隔的名稱與值配對,每組配對以=分隔:
public class Person
{
public string Name;
public string Address;
}
var person = new Person{Name="The President", Address = "Élysée Palace"};
集合也可以用這種方式初始化。通常會使用以逗號分隔的清單來完成,如下所示:
IList<Person> people = new List<Person>{ new Person(), new Person{Name="Joe Shmo"}};
字典則使用以下語法:
IDictionary<int, string> numbers = new Dictionary<int, string>{ [0] = "zero", [1] = "one"...};
// or
IDictionary<int, string> numbers = new Dictionary<int, string>{ {0, "zero" }, {1, "one"}...};
有人請你在網路驗證系統上再多做一些工作。
除了在開發期間將管理員身分寫死在系統中之外,上頭也希望資深開發者比照辦理。
管理員的詳細資料如下:
| Eye Color | Philtrum Width | Name | Address 1 | Address 2 | |
|---|---|---|---|---|---|
| admin@ex.ism | green | 0.9 | Chanakya | Mumbai | India |
實作 Authenticator.Admin 屬性,回傳系統管理員的身分詳細資料。姓名和地址的每個部分都應該分別放在 NameAndAddress 陣列的個別元素中。
var authenticator = new Authenticator();
authenticator.Admin;
// => {"admin@ex.ism", {"green", 0.9m}, ["Chanakya", "Mumbai", "India"]}
開發者的詳細資料如下:
| Eye Color | Philtrum Width | Name | Address 1 | Address 2 | |
|---|---|---|---|---|---|
| bert@ex.ism | blue | 0.8 | Bertrand | Paris | France |
| anders@ex.ism | brown | 0.85 | Anders | Redmond | USA |
實作 Authenticator.Developers 屬性,回傳開發者的身分詳細資料。字典的鍵是開發者的姓名。
var authenticator = new Authenticator();
authenticator.Developers;
// => ["Bertrand"] = {"bert@ex.ism", {"blue", 0.8m}, ["Bertrand", "Paris", "France"]},
// ["Anders"] = {"anders@ex.ism", {"brown", 0.85m}, ["Anders", "Redmond", "USA"]},