返回null或空集合会更好吗?

260*_*986 4 c# collections methods

假设我有一个返回数组或列表或其他集合的方法.如果内部出现问题或者根本没有数据要返回,那么更好的是返回null或返回长度(计数)等于0的数组(列表等)?

事实上它很重要,还是仅仅是开发人员的偏好?

kem*_*002 9

最好返回一个空集合.这样当有人像这样调用函数时:

foreach(var i in items)
{

}
Run Code Online (Sandbox Code Playgroud)

它不会对它们抛出空引用异常.

从技术上讲,你可以争论空null手段和手段,但实际上很多人(我自己包括在内)忘记防守,并且在使用之前不检查对象是否为空.它正在发挥其他人认为会发生的事情,这意味着更少的错误和更少愤怒的用户.


Bri*_*sen 5

如果您返回空集合而不是 null,您的迭代代码将会容易得多。

但是,区分空集合和无数据集合可能很重要,因此这取决于实际类型的语义。