Short-circuit evaluation is an evaluation strategy for Boolean operators, that doesn’t evaluate the second argument of the operator if it is not needed to determine the result of the operation.
VB.NET provides logical operators that implement short-circuiting evaluations AndAlso and OrElse, as well as the
non-short-circuiting versions And and Or. Unlike short-circuiting operators, the non-short-circuiting operators evaluate
both operands and afterward perform the logical operation.
For example False AndAlso FunctionCall always results in False even when the FunctionCall invocation would
raise an exception. In contrast, False And FunctionCall also evaluates FunctionCall, and results in an exception if
FunctionCall raises an exception.
Similarly, True OrElse FunctionCall always results in True, no matter what the return value of FunctionCall
would be.
The use of non-short-circuit logic in a boolean context is likely a mistake, one that could cause serious program errors as conditions are evaluated under the wrong circumstances.
If GetTrue() Or GetFalse() Then ' Noncompliant: both sides evaluated End If
If GetTrue() OrElse GetFalse() Then ' Compliant: short-circuit logic used End If