Opérateurs de comparaison en Visual Basic
Les opérateurs de comparaison comparent deux expressions et renvoient une valeur Boolean
qui représente la relation de leurs valeurs. Il existe des opérateurs pour comparer des valeurs numériques, des opérateurs pour comparer des chaînes et des opérateurs pour comparer des objets. Ces trois types d’opérateurs sont décrits ici.
Comparaison des valeurs numériques
Visual Basic compare les valeurs numériques à l’aide de six opérateurs de comparaison numérique. Chaque opérateur exploite en tant qu’opérandes deux expressions qui prennent des valeurs numériques. Le tableau suivant énumère les opérateurs et donne des exemples pour chacun d’entre eux.
Opérateur | Condition testée | Exemples |
---|---|---|
= (égalité) |
La valeur de la première expression est-elle égale à la valeur de la seconde ? | 23 = 33 ' False 23 = 23 ' True 23 = 12 ' False |
<> (inégalité) |
La valeur de la première expression est-elle inégale à la valeur de la seconde ? | 23 <> 33 ' True 23 <> 23 ' False 23 <> 12 ' True |
< (inférieur à) |
La valeur de la première expression est-elle inférieure à la valeur de la seconde ? | 23 < 33 ' True 23 < 23 ' False 23 < 12 ' False |
> (supérieur à) |
La valeur de la première expression est-elle supérieure à la valeur de la seconde ? | 23 > 33 ' False 23 > 23 ' False 23 > 12 ' True |
<= (inférieur ou égal à) |
La valeur de la première expression est-elle inférieure ou égale à la valeur de la seconde ? | 23 <= 33 ' True 23 <= 23 ' True 23 <= 12 ' False |
>= (supérieur ou égal à) |
La valeur de la première expression est-elle supérieure ou égale à la valeur de la seconde ? | 23 >= 33 ' False 23 >= 23 ' True 23 >= 12 ' True |
Comparaison de chaînes
Visual Basic compare des chaînes à l’aide de l’opérateur Like ainsi que des opérateurs de comparaison numériques. L’opérateur Like
vous permet de spécifier un modèle. La chaîne est ensuite comparée au modèle et, si elle correspond, le résultat est True
. Sinon, le résultat est False
. Les opérateurs numériques vous permettent de comparer des valeurs String
en fonction de leur ordre de tri, comme illustré dans l’exemple suivant.
"73" < "9"
' The result of the preceding comparison is True.
Le résultat de l’exemple précédent est True
, parce que le premier caractère de la première chaîne trie avant le premier caractère de la deuxième chaîne. Si les premiers caractères étaient égaux, la comparaison passerait au caractère suivant dans les deux chaînes, et ainsi de suite. Vous pouvez également tester l’égalité des chaînes à l’aide de l’opérateur d’égalité, comme illustré dans l’exemple suivant.
"734" = "734"
' The result of the preceding comparison is True.
Si une chaîne est un préfixe d’une autre chaîne, par exemple « aa » et « aaa », la chaîne la plus longue est considérée comme supérieure à la chaîne plus courte. L'exemple suivant illustre ce comportement.
"aaa" > "aa"
' The result of the preceding comparison is True.
L’ordre de tri est basé sur une comparaison binaire ou une comparaison textuelle en fonction du paramètre de Option Compare
. Pour plus d’informations, consultez Instruction Option Compare.
Comparaison d’objets
Visual Basic compare deux variables de référence d’objet avec l’opérateur Is et l’opérateur IsNot. Vous pouvez utiliser l’un de ces opérateurs pour déterminer si deux variables de référence font référence à la même instance d’objet. L'exemple suivant illustre ce comportement.
Dim x As testClass
Dim y As New testClass()
x = y
If x Is y Then
' Insert code to run if x and y point to the same instance.
End If
Dans l’exemple précédent, x Is y
prend la valeur True
, car les deux variables font référence à la même instance. Comparez ce résultat avec l’exemple suivant.
Dim x As New customer()
Dim y As New customer()
If x Is y Then
' Insert code to run if x and y point to the same instance.
End If
Dans l’exemple précédent, x Is y
prend la valeur False
, car bien que les variables fassent référence à des objets du même type, elles font référence à différentes instances de ce type.
Lorsque vous souhaitez tester deux objets qui ne pointent pas vers la même instance, l’opérateur IsNot
vous permet d’éviter une combinaison grammaticalement maladroite de Not
et Is
. L'exemple suivant illustre ce comportement.
Dim a As New classA()
Dim b As New classB()
If a IsNot b Then
' Insert code to run if a and b point to different instances.
End If
Dans l’exemple précédent, If a IsNot b
équivaut à If Not a Is b
.
Comparaison du type d’objet
Vous pouvez tester si un objet est d’un type particulier avec l’expression TypeOf
...Is
. La syntaxe est la suivante :
TypeOf <objectexpression> Is <typename>
Lorsque typename
spécifie un type d’interface, l’expression TypeOf
...Is
renvoie True
si l’objet implémente le type d’interface. Quand typename
est un type de classe, l’expression renvoie True
, si l’objet est une instance de la classe spécifiée ou d’une classe qui dérive de la classe spécifiée. L'exemple suivant illustre ce comportement.
Dim x As System.Windows.Forms.Button
x = New System.Windows.Forms.Button()
If TypeOf x Is System.Windows.Forms.Control Then
' Insert code to run if x is of type System.Windows.Forms.Control.
End If
Dans l’exemple précédent, l’expression TypeOf x Is Control
prend la valeur True
, car le type de x
est Button
, qui hérite de Control
.
Pour plus d’informations, consultez l’opérateur TypeOf.