之间有什么区别
public List<MyType> Something{ get; set; } = new List<MyType>();
和
public List<MyType> Something{
get{
return new List<MyType>();
}
//set...
}
上下文:
我不确定我在代码中看到的行为。构造函数上有服务,但是在我假定是类的相同实例的将来的方法调用中,null
是
答案 0 :(得分:8)
第一行:
public List<MyType> Something{ get; set; } = new List<MyType>();
实例化具有此属性的对象时,将调用一次。这是Something
实例的一次创建。
第二个示例是getter的显式实现。每次您访问Something
的getter时,它将返回一个新的空列表。
编辑:
第一行称为auto-property initializer,有关详细答案,请查看a post by Jon Skeet。从C#6.0开始存在此功能