OrElse-operator (Visual Basic)
Hiermee wordt een inclusieve logische disjunction uitgevoerd voor twee expressies.
Syntaxis
result = expression1 OrElse expression2
generator
result
Vereist. Elke Boolean
expressie.
expression1
Vereist. Elke Boolean
expressie.
expression2
Vereist. Elke Boolean
expressie.
Opmerkingen
Een logische bewerking wordt geacht kortsluiting te zijn als de gecompileerde code de evaluatie van één expressie kan omzeilen, afhankelijk van het resultaat van een andere expressie. Als het resultaat van de eerste expressie die is geëvalueerd het uiteindelijke resultaat van de bewerking bepaalt, hoeft u de tweede expressie niet te evalueren, omdat het uiteindelijke resultaat niet kan worden gewijzigd. Kortsluiting kan de prestaties verbeteren als de omzeilde expressie complex is of als het procedure-aanroepen omvat.
Als een van beide expressies resulteert in True
, result
is True
dat . In de volgende tabel ziet u hoe result
dit wordt bepaald.
Als expression1 is |
En expression2 is |
De waarde van result is |
---|---|---|
True |
(niet geëvalueerd) | True |
False |
True |
True |
False |
False |
False |
Gegevenstypen
De OrElse
operator is alleen gedefinieerd voor het Booleaanse gegevenstype. Visual Basic converteert elke operand naar behoefte voordat Boolean
de expressie wordt geëvalueerd. Als u het resultaat toewijst aan een numeriek type, converteert Visual Basic het van Boolean
naar dat type, zodat het False
wordt 0
en True
wordt -1
.
Zie Booleaanse typeconversies voor meer informatie.
Overbelasting
De Operator Or en de IsTrue-operator kunnen overbelast worden, wat betekent dat een klasse of structuur hun gedrag opnieuw kan definiëren wanneer een operand het type van die klasse of structuur heeft. Het overbelasten van de Or
operator en IsTrue
operators is van invloed op het gedrag van de OrElse
operator. Als uw code gebruikmaakt van OrElse
een klasse of structuur die overbelast raakt Or
, moet IsTrue
u het opnieuw gedefinieerde gedrag begrijpen. Zie Operator Procedures voor meer informatie.
Voorbeeld 1
In het volgende voorbeeld wordt de OrElse
operator gebruikt om logische ontkoppeling uit te voeren op twee expressies. Het resultaat is een Boolean
waarde die aangeeft of een van de twee expressies waar is. Als de eerste expressie is True
, wordt de tweede niet geëvalueerd.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b OrElse b > c
secondCheck = b > a OrElse b > c
thirdCheck = b > a OrElse c > b
Het voorgaande voorbeeld produceert respectievelijk resultaten van True
, True
en False
. In de berekening van firstCheck
wordt de tweede expressie niet geëvalueerd omdat de eerste al True
is. De tweede expressie wordt echter geëvalueerd in de berekening van secondCheck
.
Voorbeeld 2
In het volgende voorbeeld ziet u een If
...Then
-instructie met twee procedureaanroepen. Als de eerste aanroep wordt geretourneerd True
, wordt de tweede procedure niet aangeroepen. Dit kan onverwachte resultaten opleveren als de tweede procedure belangrijke taken uitvoert die altijd moeten worden uitgevoerd wanneer deze sectie van de code wordt uitgevoerd.
If testFunction(5) = True OrElse otherFunction(4) = True Then
' If testFunction(5) is True, otherFunction(4) is not called.
' Insert code to be executed.
End If