是否可以使用C#自动属性创建对象的新实例?
在C#中,我喜欢我能做到这一点:public string ShortProp {get; set;}
是否可以为首先需要实例化的List这样的对象执行此操作?
即:
List<string> LongProp = new List<string>();
public List<string> LongProp {
get {
return LongProp ;
}
set {
LongProp = value;
}
}
答案 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 。