Should I always use the AndAlso and OrElse operators?
Solution 1:
From MSDN:
Short-Circuiting Trade-Offs
Short-circuiting can improve performance by not evaluating an expression that cannot alter the result of the logical operation. However, if that expression performs additional actions, short-circuiting skips those actions. For example, if the expression includes a call to a Function procedure, that procedure is not called if the expression is short-circuited, and any additional code contained in the Function does not run. If your program logic depends on any of that additional code, you should probably avoid short-circuiting operators.
Solution 2:
Is there ever a circumstance in which I would not want to use the AndAlso operator rather than the And operator?
Sure: if you want to make sure that both sides of the expression are evaluated. This might be the case if, for example, both sides are method calls that return booleans as a result of some other operation that has a side effect.
But in general, use AndAlso
/OrElse
whenever you would use &&
/||
in C/C++/C#, which of course is the vast majority of the time.