исключение броска элемента var при проверке на ноль - PullRequest
2 голосов
/ 20 сентября 2011

Я вижу странное поведение для тестирования нулевого значения в сравнении с типом var с использованием C # .NET

Вот пример кода.

//  locate user in cache

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

if (user != null)
{

} 

Когда пользователь содержит нулевое значениегенерируется исключение, указывающее, что «ссылка на объект не установлена».

GWUsers - это одноэлементный файл, используемый для хранения списка пользователей, хранящихся в файле XML.Этот тот же самый фрагмент кода используется во всем приложении, но в этом одном случае он выдает исключение при оценке против нулевого значения.

Любые идеи, почему это может быть?

Цените любую проницательностьна этом.

Спасибо

Ответы [ 2 ]

5 голосов
/ 20 сентября 2011

Скорее всего, следующие причины могут быть:

  • GWUsers.Instance.Users - ноль
  • Один из экземпляров в списке - ноль
1 голос
/ 20 сентября 2011

В случае нулевого пользовательского элемента в Users, вы можете изменить оператор LINQ следующим образом:

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

Это не помогло бы, если бы Users было нулевым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...