已锁定 。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。
从函数返回数据时的 最佳实践 是什么。返回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异常,这对于突出显示错误代码很有用- 尝试不访问任何成员都是没有意义的。访问空对象的成员不会失败,这意味着错误可能会被发现。