public class Person
{
public int Age { get; set; }
public string Name { get; set; }
List<Person> friends = new List<Person>();
public List<Person> Friends
{
get { return friends; }
}
Location home = new Location();
public Location Home
{
get { return home; }
}
public Person() //执行无参数的构造函数之前出事或了 List<Person>类 和 Location类
{ //执行了2次
}
public Person(string name)
{
Name = name;
}
}
class ObjectInitializer
{
static void Main() //使用对象和集合初始化程序来构建一个"富对象"
{
Person tom = new Person //调用无参数的构造函数
{
Name = "Tom", //直接设置属性
Age = 9,
Home = { Town = "Reading", Country = "UK" }, //初始化嵌入对象
Friends = //向现有集合添加内容
{
new Person { Name = "Alberto" }, //用更近一步的对象初始化程序来初始化集合
new Person("Max"),//第三次初始化
new Person { Name = "Zak", Age = 7 },
new Person("Ben"),//第五次初始化
new Person("Alice") //第六次初始化
{
Age = 9,
Home = { Town = "Twyford", Country="UK" }
}
}
};
}
}
在对象初始化程序中对集合进行初始化,有点像"独立集合初始化列表"和”设置嵌入对象的属性"之间的一个交叉。
针对集合初始化程序中的每一个元素,都会调用集合属性(Friedns)的取值方法,然后返回值调用一个恰当的Add方法。
添加元素前,不会采用任何方式先清楚集合中的内容
比较难懂,看看就好
输出
无输出