繁体   English   中英

当属性为类时,如何为C#自动属性赋予默认值

[英]How do you give a C# Auto-Property a default value When the Property is a Class

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

所以这是我的例子:

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

如您所见,我的属性arent intstring放置为Person 每个人都有许多属性,我想为每个对象设置其中之一的默认值。

例如,如果我结交一个新人,例如:

Person Pete = new Person { PersonTypeID = 1 };

如您所见, Person具有PersonTypeID属性。 可以说,每次实例化Claim类时,我想将Member值设置为1并将Claimant值设置为2 我怎样才能做到这一点?

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

否则,使用Claim的构造函数。

偷懒尝试一下

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM