Delen via


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 Truedat . 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 IsTrueu 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, Trueen False . In de berekening van firstCheckwordt de tweede expressie niet geëvalueerd omdat de eerste al Trueis. 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

Zie ook