有一个类似的问题here。但是,我的属性不是int
或string
,而是class
本身具有许多属性。所以我想将默认值设置为属性的属性。
所以这是我的例子:
public class Claim
{
public Person Member { get; set; }
public Person Claimant { get; set; }
}
正如您所看到的,我的属性不是int
或string
,而是Person
。每个人都有很多属性,我想为每个对象设置其中一个属性的默认值。
例如,如果我创建一个像这样的新人:
Person Pete = new Person { PersonTypeID = 1 };
正如您所看到的,Person
具有PersonTypeID
属性。假设我希望每次1
类实例化时,将Member
的{{1}}和2
的{{1}}设置为默认值。我怎么能这样做?
答案 0 :(得分:6)
从C#6开始,您可以初始化auto-implemented properties:
public Person Member { get; set; } = new Person { PersonTypeID = 1 }; // or by using the constructor of Person
public Person Claimant { get; set; } = new Person { PersonTypeID = 2 };
否则使用Claim
的构造函数。
答案 1 :(得分:0)
以懒惰的方式试试
public class Claim
{
public Person Member { get; set; }
public Person Claimant { get; set; }
public Claim()
{
this.Member = new Person() { PersonTypeID = 1 };
this.Claimant = new Person() { PersonTypeID = 2 };
}
}
或
public class Claim
{
public Person Member { get; set; }
public Person Claimant { get; set; }
public Claim(int MemberTypeID, int ClaimantTypeID)
{
this.Member = new Person() { PersonTypeID = MemberTypeID };
this.Claimant = new Person() { PersonTypeID = ClaimantTypeID };
}
}