没有显式构造函数和只读属性的C#类
问题描述:
有人能解释我这个代码的工作原理吗?没有显式构造函数和只读属性的C#类
public class Person
{
readonly List<Person> _children = new List<Person>();
public IList<Person> Children
{
get { return _children; }
}
public string Name { get; set; }
}
public static Person GetFamilyTree()
{
return new Person
{
Name = "David Weatherbeam",
Children =
{
new Person
{
Name="Alberto Weatherbeam",
Children=
{
new Person
{
Name="Jenny van Machoqueen",
Children=
{
new Person
{
Name="Nick van Machoqueen",
},
new Person
{
Name="Matilda Porcupinicus",
}
}
}
}
}
}
};
}
'儿童'属性是'只读'(因为它没有设置)。 'GetFamilyTree'函数似乎使用隐式初始值设定项,它可以在'Person'之外访问'Name'属性,但是如何在此函数中指定'Children'属性?
谢谢你的解释。 干杯。
答
这有点混乱对象初始化语法检索与get
访问的收集和使用上收集公众Add
方法。它的工作原理是因为IList<Person>
的编译时类型具有(继承)a public Add
method与兼容的签名(需要参数Person
)。
+0
谢谢Jeppe! –
谢谢dbc! –