当属性是类时,如何为C#Auto-Property提供默认值

时间:2016-08-29 14:07:48

标签: c#

有一个类似的问题here。但是,我的属性不是intstring,而是class本身具有许多属性。所以我想将默认值设置为属性的属性。

所以这是我的例子:

public class Claim
{
    public Person Member { get; set; }
    public Person Claimant { get; set; }
}

正如您所看到的,我的属性不是intstring,而是Person。每个人都有很多属性,我想为每个对象设置其中一个属性的默认值。

例如,如果我创建一个像这样的新人:

Person Pete = new Person { PersonTypeID = 1 };

正如您所看到的,Person具有PersonTypeID属性。假设我希望每次1类实例化时,将Member的{​​{1}}和2的{​​{1}}设置为默认值。我怎么能这样做?

2 个答案:

答案 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 };
    }
}