2009-08-13 5 views
1

C#の自動プロパティを使用して、オブジェクトの新しいインスタンスを作成することは可能ですか? C#で C#の自動プロパティでオブジェクトの新しいインスタンスを返す方法

は、私はこれを行うことができる方法が大好き:

public string ShortProp {get; set;} 

それが最初にインスタンス化する必要がリストのようなオブジェクトのためにこれを行うことは可能でしょうか?

すなわち:

List<string> LongProp = new List<string>(); 
public List<string> LongProp { 
    get { 
     return LongProp ; 
    } 
    set { 
     LongProp = value; 
    } 
} 

答えて

8

あなたは、コンストラクタであなたのバッキングフィールドを初期化することができます

​​

しかし...あなたはこのリスト公共セッターを持つプロパティをすることについてよろしいですか?私はあなたのコードを知らないが、多分あなたは、あなたのクラスのプロパティの少ないを公開する必要があります。

public class MyClass { 
    public List<object> ClinicalStartDates {get; private set;} 
    ... 
    public MyClass() { 
     ClinicalStartDates = new List<object>(); 
    } 
} 
+0

@Downvoter:回答を改善する方法の提案はありますか?あなたはそれについて気に入らないのですか? –

1

あなたは、コンストラクタでそれを初期化する必要があります。

class MyClass { 

    public MyClass() { 
    ShortProp = "Some string"; 
    } 

    public String ShortProp { get; set; } 

} 
0

私はクラスdefinationで変数を宣言したいことはありません。それをコンストラクタで行います。

そのロジックに従って、クラスのコンストラクターでShortPropを無効にできます。

0

これを行うには唯一の方法はコンストラクタです。


public List<ClinicalStartDate> ClinicalStartDates { get; set; } 

public ObjCtor() 
{ 
    ClinicalStartDates = new List<ClinicalStartDate>; 
} 

これはおそらくあなたが聞きたかったものではありません。

0

C#3.5の自動プロパティの自動初期化をサポートしていません。
はい、はコンストラクタを使用する必要があります。
あなたの質問はです。duplicateです。

+0

C#6.0にはこの機能があります。 – nawfal

関連する問題