在针对null测试时,var item抛出异常

时间:2011-09-20 00:00:45

标签: c# exception

我看到一些使用C#.NET

对var类型测试null值的奇怪行为

以下是一些示例代码。

//  locate user in cache

var user = GWUsers.Instance.Users.Where(u => u.EmailAddress == emailAddress).FirstOrDefault();

if (user != null)
{

} 

当用户包含空值时,将抛出异常,指示“未设置对象引用”。

GWUsers是一个单例,用于存放存储在XML文件中的用户列表。在整个应用程序中使用了同样的代码,但是在这个实例中,它在针对null进行求值时会抛出异常。

为什么会有这样的想法?

欣赏对此的任何见解。

由于

2 个答案:

答案 0 :(得分:5)

很可能是以下原因:

  • GWUsers.Instance.Users为null
  • 列表中的一个实例为null

答案 1 :(得分:1)

对于Users中的null用户元素,您可以将LINQ语句修改为以下内容:

GWUsers.Instance.Users.Where(u => u != null && u.EmailAddress == u.mailAddress).FirstOrDefault();`

然而,Users为空无效。