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

CJ7*_*CJ7 3 c# properties

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

例如.

private List<MyObject> myList;
public List<MyObject> MyListProperty { get {return myList;} set {myList = value;} }
Run Code Online (Sandbox Code Playgroud)

然后:

MyListProperty = new List<MyObject>();
Run Code Online (Sandbox Code Playgroud)

Kob*_*obi 5

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

List<MyObject> myObjectList = new List<MyObject>();
MyListProperty = myObjectList;
Run Code Online (Sandbox Code Playgroud)

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

public List<MyObject> MyListProperty
{
     get {return myList;}
     set {myList = value;}
}
Run Code Online (Sandbox Code Playgroud)