即使对象不为null,对象引用也不会设置为对象的实例

时间:2012-10-31 00:49:43

标签: c# asp.net-mvc nullreferenceexception

在我的方法中,它抛出一个错误,我不是真正理解为什么因为我调试时我可以看到有一个值传入。错误消息是历来流行:对象引用未设置为实例一个对象。

 private string GetUserName(int selectedUserId)
    {
        var user = _userService.Get(selectedUserId);
        return user == null ? string.Empty : user.FullName;
    }

用户服务:

public User Get(int userId)
    {
        return _userRepository.Get(userId);
    }

用户存储库:

public User Get(int userId)
        {
            return DataContext.Users.SingleOrDefault(u => u.UserId == userId);
        }

抛出错误的行是:var user = _userService.Get(selectedUserId);但是当我调试时 - int selectedUserId在点击该行之前是44。

2 个答案:

答案 0 :(得分:2)

嗯,你这里没有给我们足够的信息。

问题不能是int selectedUserId为null,因为int不能为null。它本身就是一种不可空的类型。

这可能是其他一些问题。什么类型_userService?它可能是空的吗?在某些情况下,.Get方法会抛出异常吗?

答案 1 :(得分:1)

在调用之前不要忘记实例化_userService。