2016-03-25 4 views
1

私はこのクラスを使用して別のクラスのList型のコレクションになるプロパティを持つC#クラスを持っています。C#クラスのプロパティを常に特定のデフォルト値に設定することはできますか?

私は何をしたいことがちょうど常に値の「3」

するTypeプロパティを設定されているが/これはゲッター/セッターで行うことができべきか、私はSystem.Component.DefaultValueを使用する必要があります。.. ..私は、私はこの方法を使用しないことを好むだろうと考えて

public class ReportDefinition 
{ 

    public int Id { get; set; } 
    public string ReportGroupNameDef { get; set; } 
    public int SortOrder { get; set; } 
    public int ReportGroupId { get; set; } 

    [System.ComponentModel.DefaultValue(3)] 
    public int Type { get; set; } 

} 

属性[System.ComponentModel.DefaultValue(3)]

あなたは読み取り専用のプロパティを使用して、いずれかのプライベートフィールドの値を返すか、単に値あなたを返すことができ
+2

[C#6以上(http://stackoverflow.com/questions/40730/how-do-you-give-ac-sharp-auto-property-a-default-value)場合: 'public int Type {get;セット; } = 3; ' – Quantic

+0

C#6は.net 4.5ですか? –

+0

まあ、私のLinqpadはそれについて文句を言う... Linqpad 4 ....どのような他の方法? –

答えて

0

getに直接お問い合わせください。

public class ReportDefinition 
{ 
    private int m_type = 3; 
    public int Type 
    { 
    get 
    { 
     return m_type; 
    } 
    } 
} 
+0

これは素晴らしい作品です、ありがとう –

+0

[マジックナンバー](http://www.c-sharpcorner.com/uploadfile/)の代わりにenumを使うことも考えられますGemingLeader/refactoring-magic-numbers /)が '3'の場合はそれを返します。 – Zack

+1

downvoteのコメントは、誰ですか? – Zack

0

私は既存の選択答えを得るか、離れて盗むために期待していないが、私は私が読んでいたコメントのビットを明確に助けたいんでした。

  1. はい確かに最高のきれいな方法は、自動プロパティpublic int Type { get; } = 3;される - 警告は自動プロパティのない別のC#6は、式本体

    private int m_type = 3; 
    public int Type => m_type; 
    
  2. だろうC#6

  3. です

  4. しかし、Linqpad 4を使いたい場合、選択した答えは「細かい」

    private int m_type = 3; 
    public int Type 
    { 
        get 
        { 
         return m_type; 
        } 
    } 
    
関連する問題