The
If Not var1 Is Nothing Then
Is a hangover from VB6. There didn't used to be an IsNot, and so this was the only way to determine if a variable was not Nothing
. It seems to be redundant in VB.NET.
Domanda
Does anyone here use VB.NET and have a strong preference for or against using Not foo Is Nothing
as opposed to foo IsNot Nothing
? If so, why?
For Example
If var1 IsNot Nothing Then
...
End If
and
If Not var1 Is Nothing Then
...
End If
I just want to know which one is better?
Are they both equally acceptable?
Soluzione
The
If Not var1 Is Nothing Then
Is a hangover from VB6. There didn't used to be an IsNot, and so this was the only way to determine if a variable was not Nothing
. It seems to be redundant in VB.NET.
Altri suggerimenti
foo IsNot Nothing
The following line is straight from Microsoft's Visual Basic Coding Conventions:
Use the
IsNot
keyword instead ofNot
...Is Nothing.
I would go with the first variant - it reads like English and is easier to follow/understand than the second one. Other than that, they are equivalent.
I found a similar question here VB.NET - IsNothing versus Is Nothing, where I feel this question was exhaustively answered. Among the answers Jack Snipes identified http://weblogs.asp.net/psteele/410336, a blog that gives some extra detail. From those I prefer and have used
IsNot Nothing
which also makes my code easier to read and understand.
Using VB 7.0
If var1 Is Not Nothing Then
generates an "invalid use of object error" as per this "VBForums" link.
If var1 IsNot Nothing Then
generates a "Compile error: Expected: Then or GoTo"
If Not IsNothing(var1) Then
worked like a champ