如果我正在调用一个函数:
public User GetUserById(int UserId) { User someUser = new User(); //Look up this UserId in the database ... someUser.Name = dbResult["Name"]; return someUser; }
假设我传入的UserId没有与之关联的"用户信息".
突然间,我传回的'someUser'被实例化,但是空了.检查它是否为"空"的最佳方法是什么,所以我不尝试显示它的数据?
我的穴居人想检查someUser.Name的长度是否大于零.我知道这很糟糕,所以如果你知道我错过了什么 - 我会感激你的帮助!
真正的问题是,GetUserById()
如果ID无效,为什么会返回未初始化的对象?抛出异常或者 - 最坏的情况 - 返回是不是更好null
?
就个人而言,如果id不存在,我要么返回null
,要么(不太喜欢)我会抛出一个ArgumentException
或者KeyNotFoundException
.这避免了整个问题 - 你只是检查null
...