我有以下的Person
类
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string FullName
{
get { return FirstName + " " + LastName; }
}
public IEnumerable<Person> Children { get; set; }
}
我可以这样初始化它:
Person p = new Person() { FirstName = "John", LastName = "Doe" };
但是,在对象初始化程序中是否可以引用Person
的另一个属性,以便我可以像这样做些什么呢?
Person p = new Person()
{
FirstName = "John",
LastName = "Doe",
Children = GetChildrenByFullName(FullName);
};
编辑
为了这个问题,所引用的属性不必根据其他属性计算,但其值可以在构造函数中设置。
谢谢
p.FullName
,它也不起作用,这真是遗憾。 - Rawlingp
。 - Dennisnew Person()
,然后在其上调用属性设置器。当您调用FullName
时,Person
已经被构造,因此该属性可以被调用。不幸的是,Person
是在临时变量中构造的,而不是直接在p
中构造,因此您无法像这样访问其属性。(可能有很好的理由,但在这种特殊情况下,这是一件遗憾的事情。) - Rawling