Ответ 1
If Not var1 Is Nothing Then
Это похмелье от VB6. Раньше не было IsNot, и поэтому это был единственный способ определить, была ли переменная Nothing
. Кажется, что он избыточен в VB.NET.
Кто-нибудь здесь использует VB.NET и имеет сильное предпочтение или против использования Not foo Is Nothing
, а не foo IsNot Nothing
? Если да, то почему?
Пример
If var1 IsNot Nothing Then
...
End If
и
If Not var1 Is Nothing Then
...
End If
Я просто хочу узнать, какой из них лучше?
Являются ли они одинаково приемлемыми?
If Not var1 Is Nothing Then
Это похмелье от VB6. Раньше не было IsNot, и поэтому это был единственный способ определить, была ли переменная Nothing
. Кажется, что он избыточен в VB.NET.
Я бы пошел с первым вариантом - он читается, как английский, и легче следовать/понимать, чем второй. Помимо этого, они эквивалентны.
foo IsNot Nothing
Следующая строка прямо из Microsoft Соглашения по кодированию Visual Basic:
Используйте ключевое слово
IsNot
вместоNot
... Nothing.
Я нашел аналогичный вопрос здесь VB.NET - IsNothing versus Nothing Nothing, где я чувствую, что этот вопрос исчерпывающе ответил. Среди ответов Джек Снайпс выделил http://weblogs.asp.net/psteele/410336 - блог, в котором содержится дополнительная информация. Из тех, что я предпочитаю и использовал
IsNot Nothing
что также упрощает чтение и понимание кода.
Использование VB 7.0
If var1 Is Not Nothing Then
генерирует "недопустимое использование ошибки объекта" в соответствии с этой ссылкой "VBForums" .
If var1 IsNot Nothing Then
генерирует "Ошибка компиляции: Ожидаемое: Затем или GoTo"
If Not IsNothing(var1) Then
работал как чемпион