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.

Voir aussi