返回 null 还是空集合:最佳实践
在设计返回集合作为返回值类型的方法时,会产生一个问题:应该返回 null 还是空集合?最佳实践强烈建议在所有情况下都返回空集合。
为什么选择空集合?
返回 null 是一种不好的实践,因为它会导致不必要的代码复杂性和潜在的运行时错误。例如,如果您为集合属性返回 null:
if(myInstance.CollectionProperty != null)
{
foreach(var item in myInstance.CollectionProperty)
/* 如果 CollectionProperty 为 null,此代码可能会失败 */
}
如果 myInstance.CollectionProperty 确实为 null,此代码可能会导致异常。相反,最好返回一个空集合,确保上述代码仍然可以无错误地执行。
属性最佳实践
对于返回集合的属性,建议仅初始化一次该属性。这可以在包含该属性的类的构造函数期间完成:
public List Foos { public get; private set; }
public Bar() { Foos = new List(); }
使用 C# 6,可以使用更简洁的版本:
public List Foos { get; } = new List();
方法最佳实践
对于返回集合的方法,如果实际集合不存在,则返回空集合。您可以为此目的使用 Enumerable.Empty
public IEnumerable GetMyFoos()
{
return InnerGetFoos() ?? Enumerable.Empty();
}
这种方法确保即使 InnerGetFoos() 返回 null,该方法仍然会返回一个空集合,从而防止潜在的错误。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3