如何在C#Automatic Properties中返回对象的新实例

时间:2009-08-13 23:30:09

标签: c# .net properties automatic-properties

是否可以使用C#自动属性创建对象的新实例?

在C#中,我喜欢我能做到这一点:

public string ShortProp {get; set;}

是否可以为首先需要实例化的List这样的对象执行此操作?

即:

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

5 个答案:

答案 0 :(得分:8)

您可以在构造函数上初始化支持字段:

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

但是......你确定要将这个列表作为公共二传手的属性吗?我不知道你的代码,但也许你应该暴露更少的类的属性:

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

答案 1 :(得分:1)

您必须在构造函数中初始化它:

class MyClass {

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

  public String ShortProp { get; set; }

}

答案 2 :(得分:0)

我从不想在类定义中声明变量。在构造函数中执行。

因此遵循该逻辑,您可以在类的构造函数中使用ShortProp。

答案 3 :(得分:0)

唯一可以做到这一点的方法是构造函数。


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

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

这可能不是你想听到的。

答案 4 :(得分:0)

C#3.5不支持自动属性的自动初始化 所以,是的,你应该使用构造函数 您的问题是 a duplicate