我有一个由属性公开的List<>的对象.我通常在属性getter中初始化我的列表,如下所示:
public class Foo { private List<bar> _barList; public List<bar> { get { if(_barList == null) { _barList = new List<Bar>() } return _barList; } set { _barList = value; } } public Foo() { } }
但是,我的同事通常更喜欢在类构造函数中初始化列表,如下所示:
public class Foo { public List<bar> BarList { get; set; } public Foo() { BarList = new List<Bar>(); } }
这两种情况都会阻止BarList在初始化之前被访问.由于使用autoproperties,第二个似乎更整洁.第一个似乎是一个更好的选择,因为列表仅在首次使用时初始化.我还应该考虑其他因素吗?这是最好的做法吗?