从函数返回数据时的 最佳实践 是什么。返回 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 的用户信息。我会想象在这种情况下抛出异常是不合适的?此外,我的印象是异常处理会损害性能。
如果您打算指示没有可用数据,则返回 null 通常是最好的主意。
空对象表示已返回数据,而返回 null 则明确表示未返回任何内容。
此外,如果您尝试访问对象中的成员,则返回 null 将导致 null 异常,这对于突出显示有问题的代码很有用 - 尝试访问什么都没有的成员是没有意义的。访问空对象的成员不会失败,这意味着错误可能未被发现。