当C#自动属性是一个类时,如何给它一个默认值

本文关键字:一个 默认值 属性 | 更新日期: 2023-09-27 18:04:29

这里也有类似的问题。然而,我的属性不是intstring,而是class本身,它有许多自己的属性。所以我想把默认值设置为一个属性的一个属性。

下面是我的例子:

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

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

例如,如果我让一个新人像这样:

Person Pete = new Person { PersonTypeID = 1 };

如您所见,Person具有PersonTypeID属性。比方说,我想在每次实例化Claim类时,将该值设置为Member1Claimant2作为默认值。我该怎么做?

当C#自动属性是一个类时,如何给它一个默认值

由于C#6,您可以初始化自动实现的属性:

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

否则使用CCD_ 14的构造函数。

以一种懒惰的方式尝试

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