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?
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
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.
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.