When writing an If statement, I’ve always used And when needed like:
If 1=1 And 2=2 Then
The only time I ever used AndAlso is if the second condition will error if the first isnt true like:
If Not IsDbNull(Value) AndAlso Value=2 Then
However, recently I’ve heard that AndAlso is better for performance than And as the second condition is only read when the first is true.
In this case, should I always just use AndAlso?
Yes,
AndAlsocan be faster thanAnd, because it doesn’t evaluate subsequent conditions if an earlier condition proves false.Andis a throwback to earlier versions of Visual Basic.Most (I hesitate to say all) modern languages use boolean operators that short-circuit conditions that don’t strictly need to be evaluated.
e.g.
&&the and operator for C style languages all perform asAndAlso.Be careful if you’ve lots of code that use
AndandOr, a global search and replace can change existing behaviour, if the second condition involves a function call that has side effects.I would prefer using
AndAlsoandOrElseunless you specifically require the functionality provided byAnd&Or