Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Should I always use the AndAlso and OrElse operators?

Is there ever a circumstance in which I would not want to use the AndAlso operator rather than the And operator? …or in which I would not want to use the OrElse operator rather than the Or operator?

like image 856
Zack Peterson Avatar asked Sep 10 '08 18:09

Zack Peterson


2 Answers

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.

like image 171
Vaibhav Avatar answered Oct 01 '22 20:10

Vaibhav


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.

like image 41
Joel Coehoorn Avatar answered Oct 01 '22 20:10

Joel Coehoorn