Подтвердить что ты не робот

"Нет... ничего" против "... IsNot Nothing"

Кто-нибудь здесь использует VB.NET и имеет сильное предпочтение или против использования Not foo Is Nothing, а не foo IsNot Nothing? Если да, то почему?

Пример

If var1 IsNot Nothing Then
...
End If

и

If Not var1 Is Nothing Then
...
End If

Я просто хочу узнать, какой из них лучше?
Являются ли они одинаково приемлемыми?

4b9b3361

Ответ 1

If Not var1 Is Nothing Then

Это похмелье от VB6. Раньше не было IsNot, и поэтому это был единственный способ определить, была ли переменная Nothing. Кажется, что он избыточен в VB.NET.

Ответ 2

Я бы пошел с первым вариантом - он читается, как английский, и легче следовать/понимать, чем второй. Помимо этого, они эквивалентны.

Ответ 4

Я нашел аналогичный вопрос здесь VB.NET - IsNothing versus Nothing Nothing, где я чувствую, что этот вопрос исчерпывающе ответил. Среди ответов Джек Снайпс выделил http://weblogs.asp.net/psteele/410336 - блог, в котором содержится дополнительная информация. Из тех, что я предпочитаю и использовал

IsNot Nothing

что также упрощает чтение и понимание кода.

Ответ 5

Использование VB 7.0

If var1 Is Not Nothing Then

генерирует "недопустимое использование ошибки объекта" в соответствии с этой ссылкой "VBForums" .

If var1 IsNot Nothing Then

генерирует "Ошибка компиляции: Ожидаемое: Затем или GoTo"

If Not IsNothing(var1) Then

работал как чемпион