相关疑难解决方法(0)

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

从函数返回数据时的最佳做法是什么.返回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;
}
Run Code Online (Sandbox Code Playgroud)

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

.net c# function return-value

209
推荐指数
9
解决办法
9万
查看次数

默认字符串初始化:NULL还是Empty?

我总是将我的字符串初始化为NULL,认为NULL表示没有值,""或String.Empty是一个有效值.我最近看到了更多代码示例,其中String.Empty被视为默认值或不表示任何值.这让我感到很奇怪,在c#中新添加的可空类型似乎我们通过不使用NULL来表示"无值"来向后调整字符串.

您使用什么作为默认初始化程序?为什么?

编辑:根据答案,我进一步思考

  1. 避免错误处理如果值不应为null,为什么它NULL首先设置为?也许最好在发生错误的位置识别错误,而不是在代码库的其余部分覆盖错误?

  2. 避免空检查如果您厌倦了在代码中进行空检查,那么抽象空检查是不是更好?也许包装(或扩展!)字符串方法以使它们NULL安全吗?如果你经常使用String.Empty并且null正好进入你的系统会发生什么,你是否开始添加NULL检查?

我忍不住回到懒惰的意见.如果你使用''而不是null在他的数据库中使用',那么任何DBA都会狠狠地打你九种方式.我认为同样的原则适用于编程,并且应该有人打击那些使用String.Empty而不是NULL代表没有价值的人.

相关问题

c#

127
推荐指数
6
解决办法
14万
查看次数

表字段中的NULL比空字段好吗?

我想知道在没有值的字段中是否应该为NULL,还是应该为空?

什么是最好的?

谢谢

mysql database-design

3
推荐指数
1
解决办法
900
查看次数

标签 统计

c# ×2

.net ×1

database-design ×1

function ×1

mysql ×1

return-value ×1