函数应该返回什么?

本文关键字:什么 返回 函数 | 更新日期: 2023-09-27 18:17:14

假设我有一个这样的函数:

public List<int> func()
{}

现在,由于某些原因,我没有任何东西可以放入列表,所以我将只返回"空的东西"。根据良好的实践,我应该在上面的函数中返回以下三个中的哪一个?

return null;
return new List<int>();  
return default(List<int>);  //Is this the same thing as the one above?

函数应该返回什么?

返回一个空列表:

return new List<int>();

default(List<int>)将返回null;不是一个空列表!

返回空列表可以防止在每次调用函数后进行过多的空检查。请参阅返回null或空集合是否更好?

返回空列表。当您返回null时,您必须在调用func的代码中检查该条件

这要看情况;例如,如果由于某种原因您没有任何项目,也许您应该抛出异常而不是返回任何内容?

如果返回类型为空是可以接受的,那么我个人建议使用null对象模式。

在任何情况下,也许最重要的因素是你的其他代码在类似的情况下做什么。即一致性是一个主要因素。如果你在其他地方返回空对象那就那样做。如果返回null,则执行

我会说:

    return Enumerable.Empty<int>();