这是一个普遍的问题(但是我正在使用C#),最好的方法是什么(最佳实践),对于以集合为返回类型的方法,您是否返回null或空集合?
空集合。总是。
这很烂:
if(myInstance.CollectionProperty != null) { foreach(var item in myInstance.CollectionProperty) /* arrgh */ }
null在返回集合或可枚举的对象时,永远不要返回是一种最佳实践。 总是 返回一个空的可枚举/集合。它可以防止上述的废话,并防止您的汽车被班上的同事和用户所困扰。
null
在谈论属性时,请始终设置一次属性,然后忘记它
public List<Foo> Foos {public get; private set;} public Bar() { Foos = new List<Foo>(); }
在.NET 4.6.1中,您可以将其压缩得很多:
public List<Foo> Foos { get; } = new List<Foo>();
当谈论返回枚举的方法时,您可以轻松地返回一个空的枚举而不是null…
public IEnumerable<Foo> GetMyFoos() { return InnerGetFoos() ?? Enumerable.Empty<Foo>(); }
Enumerable.Empty<T>()与返回例如新的空集合或数组相比,使用效率更高。
Enumerable.Empty<T>()