Opérateur OrElse (Visual Basic)
Effectue une disjonction logique de court-circuit de deux expressions.
Syntaxe
result = expression1 OrElse expression2
Éléments
result
Obligatoire. Toute expression Boolean
.
expression1
Obligatoire. Toute expression Boolean
.
expression2
Obligatoire. Toute expression Boolean
.
Notes
Une opération logique est dite de 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 bien si elle implique des appels de procédure.
Si les deux expressions prennent la valeur True
, result
est True
. Le tableau suivant illustre la détermination de result
.
Si expression1 est |
Et expression2 est |
La valeur de result est |
---|---|---|
True |
(non évaluée) | 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 Boolean. Visual Basic convertit chaque opérande comme nécessaire à Boolean
avant d’évaluer l’expression. Si vous affectez le résultat à un type numérique, Visual Basic le convertit de Boolean
à ce type de manière à ce que False
devienne 0
et True
devienne -1
.
Pour plus d’informations, consultez Conversions de type Boolean.
Surcharge
L’opérateur Ou et l’opérateur isTrue peuvent être surchargés, ce qui signifie qu’une classe ou structure peut redéfinir leur comportement si un opérande appartient au type de cette classe ou structure. La surcharge des opérateurs Or
et IsTrue
affecte le comportement de l’opérateur OrElse
. Si votre code utilise OrElse
sur une classe ou structure qui surcharge Or
et IsTrue
, veillez à comprendre leur comportement une fois qu’il est redéfini. Pour plus d'informations, consultez Operator Procedures.
Exemple 1
L’exemple suivant utilise l’opérateur OrElse
pour effectuer une conjonction logique sur deux expressions. Le résultat est une valeur Boolean
indiquant si l’une des deux expressions est true. 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 donne les résultats de True
, True
et False
, respectivement. Dans le calcul de firstCheck
, la deuxième expression n’est pas évaluée, puisque 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 affiche une instruction If
...Then
contenant deux appels de procédure. Si le premier appel renvoie True
, la deuxième procédure n’est pas appelée. Ceci peut produire des résultats inattendus si la deuxième procédure exécute des tâches importantes à accomplir systématiquement lors de l'exécution de cette section du code.
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