VB.NET Logical Operators
Logical operators in Visual Basic .NET are used to combine Boolean expressions. They allow you to create more complex conditions that evaluate to either True
or False
.
And
Operator
The And
operator returns True
if both operands are True
. Otherwise, it returns False
.
Dim a As Boolean = True
Dim b As Boolean = False
Dim result As Boolean
result = a And True ' result is True
result = a And b ' result is False
Or
Operator
The Or
operator returns True
if at least one of the operands is True
. It returns False
only if both operands are False
.
Dim a As Boolean = True
Dim b As Boolean = False
Dim result As Boolean
result = a Or b ' result is True
result = b Or False ' result is False
Not
Operator
The Not
operator is a unary operator that inverts the Boolean value of its operand. If the operand is True
, it returns False
. If the operand is False
, it returns True
.
Dim a As Boolean = True
Dim result As Boolean
result = Not a ' result is False
Xor
Operator
The Xor
(exclusive OR) operator returns True
if exactly one of the operands is True
. If both operands are the same (both True
or both False
), it returns False
.
Dim a As Boolean = True
Dim b As Boolean = False
Dim result As Boolean
result = a Xor b ' result is True
result = a Xor True ' result is False
result = b Xor False ' result is False
AndAlso
Operator
The AndAlso
operator is a short-circuiting version of And
. It evaluates the left operand first. If the left operand is False
, the right operand is not evaluated, and the expression returns False
. This can be useful for preventing errors when the right operand's evaluation might cause an exception.
Dim isEnabled As Boolean = False
Dim isValid As Boolean = True
' If isEnabled is False, isValid is never checked.
If isEnabled AndAlso isValid Then
' This code will not execute.
End If
OrElse
Operator
The OrElse
operator is a short-circuiting version of Or
. It evaluates the left operand first. If the left operand is True
, the right operand is not evaluated, and the expression returns True
. This can improve performance and prevent errors.
Dim hasPermission As Boolean = True
Dim isUserAdmin As Boolean = False
' If hasPermission is True, isUserAdmin is never checked.
If hasPermission OrElse isUserAdmin Then
' This code will execute.
End If
Operator Precedence
The order in which operators are evaluated is important. Here's a simplified precedence table for logical operators:
Operator | Description |
---|---|
Not |
Logical NOT |
AndAlso , And |
Logical AND |
OrElse , Or |
Logical OR |
Xor |
Logical XOR |
Parentheses (()
) can be used to explicitly control the order of evaluation.
AndAlso
and OrElse
) over their non-short-circuiting counterparts (And
and Or
) whenever possible.