如何识别对象何时为空?

use*_*885 1 c#

如果我正在调用一个函数:

    public User GetUserById(int UserId)
    {
    User someUser = new User();

    //Look up this UserId in the database
     ...
    someUser.Name = dbResult["Name"];

    return someUser;
    }
Run Code Online (Sandbox Code Playgroud)

假设我传入的UserId没有与之关联的"用户信息".

突然间,我传回的'someUser'被实例化,但是空了.检查它是否为"空"的最佳方法是什么,所以我不尝试显示它的数据?

我的穴居人想检查someUser.Name的长度是否大于零.我知道这很糟糕,所以如果你知道我错过了什么 - 我会感激你的帮助!

Ken*_*art 7

真正的问题是,GetUserById()如果ID无效,为什么会返回未初始化的对象?抛出异常或者 - 最坏的情况 - 返回是不是更好null?


Mar*_*ell 5

就个人而言,如果id不存在,我要么返回null,要么(不太喜欢)我会抛出一个ArgumentException或者KeyNotFoundException.这避免了整个问题 - 你只是检查null...