2009-08-13 38 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:關於如何改善答案的任何建議?你不喜歡它什麼? – 2010-01-17 19:29:41

1

您必須在構造函數初始化:

class MyClass { 

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

    public String ShortProp { get; set; } 

} 
0

我從來沒有要聲明的類認定中的一個變量。在構造函數中執行。

所以下面這個邏輯,你可以在類的構造函數inlitailze您ShortProp。

0

你可以做到這一點的唯一方法,就是在構造函數。


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

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

這可能不是你想要雖然聽到的。

0

C#3.5不支持自動性能的自動初始化。
所以是的,你應該使用構造函數
而你的問題是a duplicate

+0

C#6.0將具有此功能。 – nawfal 2014-07-17 21:14:43

相關問題