Partager via


Opérateur OrElse (Visual Basic)

Effectue une disjonction logique inclusive en court-circuit sur deux expressions.

Syntaxe

result = expression1 OrElse expression2  

Pièces

result
Obligatoire. Toute Boolean expression.

expression1
Obligatoire. Toute Boolean expression.

expression2
Obligatoire. Toute Boolean expression.

Remarques

Une opération logique est considérée comme un court-circuit si le code compilé peut contourner l’évaluation d’une expression en fonction du résultat d’une autre expression. Si le résultat de la première expression évaluée détermine le résultat final de l’opération, il n’est pas nécessaire d’évaluer la deuxième expression, car elle ne peut pas modifier le résultat final. Le court-circuit peut améliorer les performances si l’expression contournée est complexe ou si elle implique des appels de procédure.

Si l’une ou l’autre des deux expressions prend Truela valeur , result est True. Le tableau suivant montre comment result déterminer.

Si expression1 c’est Et expression2 c’est La valeur de result est
True (non évalué) True
False True True
False False False

Types de données

L’opérateur OrElse est défini uniquement pour le type de données booléen. Visual Basic convertit chaque opérande selon les besoins avant Boolean d’évaluer l’expression. Si vous affectez le résultat à un type numérique, Visual Basic le convertit de Boolean ce type de sorte qu’il False devient 0 et True devient -1. Pour plus d’informations, consultez Conversions de types booléens.

Surcharge

L’opérateur Or et l’opérateurIsTrue peuvent être surchargés, ce qui signifie qu’une classe ou une structure peut redéfinir leur comportement lorsqu’un opérande a le type de cette classe ou structure. La surcharge des OrIsTrue opérateurs affecte le comportement de l’opérateur OrElse . Si votre code utilise OrElse sur une classe ou une structure qui surcharge Or et IsTrue, veillez à comprendre leur comportement redéfini. Pour plus d’informations, consultez Procédures d’opérateur.

Exemple 1

L’exemple suivant utilise l’opérateur OrElse pour effectuer une disjonction logique sur deux expressions. Le résultat est une Boolean valeur qui indique si l’une des deux expressions est vraie. Si la première expression est True, la seconde n’est pas évaluée.

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

L’exemple précédent produit des résultats , TrueTrueet False respectivement. Dans le calcul de firstCheck, la deuxième expression n’est pas évaluée, car la première est déjà True. Toutefois, la deuxième expression est évaluée dans le calcul de secondCheck.

Exemple 2

L’exemple suivant montre une Ifinstruction ...Then contenant deux appels de procédure. Si le premier appel retourne True, la deuxième procédure n’est pas appelée. Cela peut produire des résultats inattendus si la deuxième procédure effectue des tâches importantes qui doivent toujours être effectuées lorsque cette section du code s’exécute.

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

Voir aussi