小编典典

函数应该返回 null 还是空对象?

all

从函数返回数据时的 最佳实践 是什么。返回 Null 还是空对象更好?为什么要一个人做一个而不是另一个?

考虑一下:

public UserEntity GetUserById(Guid userId)
{
     //Imagine some code here to access database.....

     //Check if data was returned and return a null if none found
     if (!DataExists)
        return null; 
        //Should I be doing this here instead? 
        //return new UserEntity();  
     else
        return existingUserEntity;
}

让我们假设在这个程序中存在有效的情况,即数据库中没有具有该 GUID
的用户信息。我会想象在这种情况下抛出异常是不合适的?此外,我的印象是异常处理会损害性能。


阅读 64

收藏
2022-06-25

共1个答案

小编典典

如果您打算指示没有可用数据,则返回 null 通常是最好的主意。

空对象表示已返回数据,而返回 null 则明确表示未返回任何内容。

此外,如果您尝试访问对象中的成员,则返回 null 将导致 null 异常,这对于突出显示有问题的代码很有用 -
尝试访问什么都没有的成员是没有意义的。访问空对象的成员不会失败,这意味着错误可能未被发现。

2022-06-25