当C#Auto属性是一个类时,如何为该属性指定默认值

当C#Auto属性是一个类时,如何为该属性指定默认值,c#,C#,还有一个类似的问题。但是,我的属性不是int或string,而是一个类本身,它有许多自己的属性。所以我想将默认值设置为属性的属性 下面是我的例子: public class Claim { public Person Member { get; set; } public Person Claimant { get; set; } } 正如您所看到的,我的属性不是int,也不是string,而是Person。每个人都有许多属性,我想为每个对象设置其中一个属性的默认值 例如,如果

还有一个类似的问题。但是,我的属性不是
int
string
,而是一个
本身,它有许多自己的属性。所以我想将默认值设置为属性的属性

下面是我的例子:

public class Claim
{
    public Person Member { get; set; }
    public Person Claimant { get; set; }
}
正如您所看到的,我的属性不是
int
,也不是
string
,而是
Person
。每个人都有许多属性,我想为每个对象设置其中一个属性的默认值

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

Person Pete = new Person { PersonTypeID = 1 };
如您所见,
Person
有一个
PersonTypeID
属性。假设我想将
Member
1
claimer
2
的值设置为
claimer
类每次实例化时的默认值。如何执行此操作?

因为C#6可以初始化:

否则使用
声明的构造函数

,因为C#6可以初始化:

否则,请使用
声明的构造函数

以懒散的方式尝试此操作

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()
    {
        this.Member = new Person() { PersonTypeID = 1 };
        this.Claimant = new Person() { PersonTypeID = 2 };
    }
}


当您初始化
声明
时,编译器会自动将属性分配给它们的默认值。当您初始化
声明
时,编译器会自动将属性分配给它们的默认值。或者通过IoC方式:在ctor中插入
Person
实例,或者提供工厂方法,或者…或者IoC方式:在ctor中注入
Person
实例,或者提供工厂方法,或者。。。
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 };
    }
}