Быстрый вопрос, самым быстрым и легким ответом может быть переупорядочение связанного кода, но пусть видит...
Итак, у меня есть оператор If
(фрагмент кода, который является частью полного рабочего решения, написанного на С#), переписанного с использованием VB.NET. Я знаю, что метод VB.NET IIf(a, b, c)
оценивает как b
, так и a
независимо от истинности первой оценки, но это также имеет место и в моей стандартной конструкции:
If (example Is Nothing Or example.Item IsNot compare.Item) Then
'Proceed
End If
Или, скорее, более правильно:
If (example Is Nothing Or Not example.Item = compare.Item) Then
'Proceed
End If
Здесь, если example
- Nothing
(null
), то я все равно получаю NullReferenceException
- это моя ошибка, или это то, что мне просто нужно терпеть по прихоти VB.NET?