你能通过Property setter实例化对象吗?

时间:2010-08-12 04:11:54

标签: c# properties

C#:你可以通过Property setter实例化对象吗?

例如。

private List<MyObject> myList;
public List<MyObject> MyListProperty { get {return myList;} set {myList = value;} }

THEN:

MyListProperty = new List<MyObject>();

1 个答案:

答案 0 :(得分:5)

是的,这完全有效。
在行MyListProperty = new List<MyObject>();中,您不“通过Property setter实例化对象”。首先,您实例化一个新列表,然后将MyListProperty设置为您创建的列表。它相当于:

List<MyObject> myObjectList = new List<MyObject>();
MyListProperty = myObjectList;

接下来,如果您希望编译代码,则应指定属性的类型:

public List<MyObject> MyListProperty
{
     get {return myList;}
     set {myList = value;}
}