2016-08-29 4 views
1

の場合、同様の質問hereがあります。しかし、私の財産はintまたはstringではなく、それ自体が多くのプロパティを持つclassです。だから私はプロパティのプロパティにデフォルト値を設定したい。あなたは私の性質がint年代やstringのは、彼らがPerson年代です入れをアレント見ることができるようにC#Auto-Propertyにデフォルト値を与える方法プロパティがクラス

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

は、だからここに私の例です。それぞれの人には多くのプロパティがあり、オブジェクトごとにそのうちの1つのデフォルト値を設定したいと思います。例えば

私はこのような新しい人を作る場合:あなたはPersonPersonTypeID性質を持って見ることができるように

Person Pete = new Person { PersonTypeID = 1 }; 

。私がClaimクラスがインスタンス化されるたびに、その値を1としてMemberに、2Claimantにデフォルト値として設定したいとします。これどうやってするの?

+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のコンストラクタを使用します。

0

あなたは `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 }; 
    } 
} 
+0

またはIoC-way:ctorに 'Person'インスタンスを挿入するか、ファクトリメソッドを提供するか、または... –

関連する問題