假设您有一个方法应该创建并返回某种类型的数组.如果数组没有填充,该怎么办?你返回一个空数组还是null/nothing?
在.NET中,最好返回一个空数组而不是null,因为它保存了调用者必须写入空检查和/或冒险a NullReferenceException
; 你会发现这是基类库中的常见模式.你不会这样做的唯一情况是在不太可能的情况下,空数组和null具有不同的语义含义.
该官员阵列使用指南状态:
一般规则是null,空字符串("")和空(0项)数组应该以相同的方式处理.返回一个空数组而不是空引用.
这就是说,如果你使用.NET 2.0或更高版本,更好的做法是返回一个IEnumerable
或它的可扩展衍生物如之一Collection
,ReadOnlyCollection
,ICollection
或IList
(在这种情况下,我仍然倾向于,而不是返回空的空单).有关为什么这些应该首选的更多信息可以在Eric Lippert的博客中找到.