Opérateurs de comparaison (Visual Basic)Comparison Operators (Visual Basic)

Voici les opérateurs de comparaison définis dans Visual Basic.The following are the comparison operators defined in Visual Basic.

<(opérateur)< operator

<=(opérateur)<= operator

>(opérateur)> operator

>=(opérateur)>= operator

=(opérateur)= operator

<>(opérateur)<> operator

Is (opérateur)Is Operator

IsNot (opérateur)IsNot Operator

Like (opérateur)Like Operator

Ces opérateurs comparent deux expressions pour déterminer si elles sont égales, et dans le cas contraire, leurs différences.These operators compare two expressions to determine whether or not they are equal, and if not, how they differ. Is, IsNot, et Like sont présentées en détail dans les pages d’aide distinctes.Is, IsNot, and Like are discussed in detail on separate Help pages. Opérateurs de comparaison relationnels sont présentées en détail dans cette page.The relational comparison operators are discussed in detail on this page.

SyntaxeSyntax

      result = expression1 comparisonoperator expression2  
result = object1 [Is | IsNot] object2  
result = string Like pattern  

ComposantsParts

result
Obligatoire.Required. A Boolean valeur représentant le résultat de la comparaison.A Boolean value representing the result of the comparison.

expression
Obligatoire.Required. Toute expression.Any expression.

comparisonoperator
Obligatoire.Required. N’importe quel opérateur de comparaison relationnel.Any relational comparison operator.

object1, object2object1, object2
Requis.Required. Tous les noms d’objet de référence.Any reference object names.

string
Obligatoire.Required. Toute expression String.Any String expression.

pattern
Obligatoire.Required. N’importe quel String expression ou une plage de caractères.Any String expression or range of characters.

RemarquesRemarks

Le tableau suivant contient une liste des opérateurs de comparaison relationnels et les conditions qui déterminent si result est True ou False.The following table contains a list of the relational comparison operators and the conditions that determine whether result is True or False.

OpérateurOperator TrueIfTrue if FalseIfFalse if
<(Inférieur à)< (Less than) expression1 < expression2 expression1 >= expression2
<=(Inférieur ou égal à)<= (Less than or equal to) expression1 <= expression2 expression1 > expression2
>(Supérieur à)> (Greater than) expression1 > expression2 expression1 <= expression2
>=(Supérieur ou égal à)>= (Greater than or equal to) expression1 >= expression2 expression1 < expression2
=(Égal à)= (Equal to) expression1 = expression2 expression1 <> expression2
<>(Différent de)<> (Not equal to) expression1 <> expression2 expression1 = expression2

Note

Le =, opérateur est également utilisé comme un opérateur d’assignation.The = Operator is also used as an assignment operator.

Le Is (opérateur), le IsNot (opérateur) et le Like opérateur ont des fonctionnalités de comparaison spécifiques qui diffèrent des opérateurs dans le tableau précédent.The Is operator, the IsNot operator, and the Like operator have specific comparison functionalities that differ from the operators in the preceding table.

Comparaison de nombresComparing Numbers

Lorsque vous comparez une expression de type Single à un de type Double, le Single expression est convertie en Double.When you compare an expression of type Single to one of type Double, the Single expression is converted to Double. Ce comportement est l’inverse de celui trouvé dans Visual Basic 6.This behavior is opposite to the behavior found in Visual Basic 6.

De même, lorsque vous comparez une expression de type Decimal à une expression de type Single ou Double, le Decimal expression est convertie en Single ou Double.Similarly, when you compare an expression of type Decimal to an expression of type Single or Double, the Decimal expression is converted to Single or Double. Pour Decimal expressions, toute valeur fractionnaire inférieure à 1E-28 peut-être être perdue.For Decimal expressions, any fractional value less than 1E-28 might be lost. Cette perte de valeur fractionnaire risque de deux valeurs considérées comme égales lorsqu’ils ne sont pas.Such fractional value loss may cause two values to compare as equal when they are not. Pour cette raison, vous devez prendre soin lors de l’utilisation de l’égalité (=) pour comparer deux variables à virgule flottante.For this reason, you should take care when using equality (=) to compare two floating-point variables. Il est plus sûr tester si la valeur absolue de la différence entre les deux nombres est inférieure à une petite tolérance acceptable.It is safer to test whether the absolute value of the difference between the two numbers is less than a small acceptable tolerance.

À virgule flottante imprécisionFloating-point Imprecision

Lorsque vous travaillez avec des nombres à virgule flottante, gardez à l’esprit qu’ils n’ont pas toujours de représentation précise dans la mémoire.When you work with floating-point numbers, keep in mind that they do not always have a precise representation in memory. Cela peut entraîner des résultats inattendus à partir de certaines opérations, telles que la comparaison de valeurs et les MOD, opérateur.This could lead to unexpected results from certain operations, such as value comparison and the Mod Operator. Pour plus d’informations, consultez Troubleshooting Data Types.For more information, see Troubleshooting Data Types.

Comparaison de chaînesComparing Strings

Lorsque vous comparez des chaînes, les expressions de chaîne sont évaluées selon leur ordre de tri par ordre alphabétique, qui varie selon le Option Compare paramètre.When you compare strings, the string expressions are evaluated based on their alphabetical sort order, which depends on the Option Compare setting.

Option Compare Binarybases de comparaisons sur un ordre de tri dérivé des représentations binaires internes des caractères de chaînes.Option Compare Binary bases string comparisons on a sort order derived from the internal binary representations of the characters. L’ordre de tri est déterminé par la page de codes.The sort order is determined by the code page. L’exemple suivant montre un ordre de tri binaire standard.The following example shows a typical binary sort order.

A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø

Option Compare Textbases de chaîne des comparaisons sur un ordre de tri de texte sans respecter la casse déterminé par les paramètres régionaux de votre application.Option Compare Text bases string comparisons on a case-insensitive, textual sort order determined by your application's locale. Lorsque vous définissez Option Compare Text et triez les caractères dans l’exemple précédent, l’ordre de tri de texte suivant s’applique :When you set Option Compare Text and sort the characters in the preceding example, the following text sort order applies:

(A=a) < (À= à) < (B=b) < (E=e) < (Ê= ê) < (Ø = ø) < (Z=z)

Dépendance des paramètres régionauxLocale Dependence

Lorsque vous définissez Option Compare Text, le résultat d’une comparaison de chaînes peut dépendre des paramètres régionaux dans lequel l’application est en cours d’exécution.When you set Option Compare Text, the result of a string comparison can depend on the locale in which the application is running. Deux caractères peuvent considérés comme égaux dans des paramètres régionaux, mais pas dans un autre.Two characters might compare as equal in one locale but not in another. Si vous utilisez une comparaison de chaînes pour prendre des décisions importantes, telles que s’il faut accepter une tentative de connexion, vous devez être alerte sensibilité de paramètres régionaux.If you are using a string comparison to make important decisions, such as whether to accept an attempt to log on, you should be alert to locale sensitivity. Un paramètre Option Compare Binary ou appel le StrComp, qui prend les paramètres régionaux en compte.Consider either setting Option Compare Binary or calling the StrComp, which takes the locale into account.

Programmation sans type avec des opérateurs de comparaison relationnelsTypeless Programming with Relational Comparison Operators

L’utilisation d’opérateurs de comparaison relationnels avec Object expressions n’est pas autorisée sous Option Strict On.The use of relational comparison operators with Object expressions is not allowed under Option Strict On. Lorsque Option Strict est Offet la valeur expression1 ou expression2 est un Object expression, les types d’exécution déterminent la façon dont ils sont comparés.When Option Strict is Off, and either expression1 or expression2 is an Object expression, the run-time types determine how they are compared. Le tableau suivant montre comment les expressions sont comparées et le résultat de la comparaison, en fonction du type d’exécution des opérandes.The following table shows how the expressions are compared and the result from the comparison, depending on the runtime type of the operands.

Si les opérandes sontIf operands are La comparaison estComparison is
Les deuxStringBoth String Comparaison basée sur les caractéristiques de tri de chaîne de tri.Sort comparison based on string sorting characteristics.
Les deux numériquesBoth numeric Les objets convertis en Double, comparaison numérique.Objects converted to Double, numeric comparison.
Une valeur numérique et l’autreStringOne numeric and one String Le String est converti en un Double et une comparaison numérique est effectuée.The String is converted to a Double and numeric comparison is performed. Si le String ne peut pas être converti en Double, un InvalidCastException est levée.If the String cannot be converted to Double, an InvalidCastException is thrown.
Les deux sont des types de référence autres queStringEither or both are reference types other than String Un objet InvalidCastException est levé.An InvalidCastException is thrown.

Les comparaisons numériques traitent Nothing en tant que 0.Numeric comparisons treat Nothing as 0. Comparaisons de chaînes traitent Nothing en tant que "" (une chaîne vide).String comparisons treat Nothing as "" (an empty string).

SurchargeOverloading

Opérateurs de comparaison relationnels (<.The relational comparison operators (<. <=``>, >=, =, <>) peut être surchargé, ce qui signifie qu’une classe ou structure peut redéfinir leur comportement lorsqu’un opérande a le type de cette classe ou structure.<=, >, >=, =, <>) can be overloaded, which means that a class or structure can redefine their behavior when an operand has the type of that class or structure. Si votre code utilise un de ces opérateurs sur une telle classe ou structure, assurez-vous que vous comprenez le comportement redéfini.If your code uses any of these operators on such a class or structure, be sure you understand the redefined behavior. Pour plus d’informations, consultez procédures d’opérateur.For more information, see Operator Procedures.

Notez que la =, opérateur peuvent être surchargées uniquement en tant qu’un opérateur de comparaison relationnel, et non comme un opérateur d’assignation.Notice that the = Operator can be overloaded only as a relational comparison operator, not as an assignment operator.

ExempleExample

L’exemple suivant montre les différentes utilisations des opérateurs de comparaison relationnels, ce qui vous permet de comparer des expressions.The following example shows various uses of relational comparison operators, which you use to compare expressions. Opérateurs de comparaison relationnels retournent un Boolean résultat qui indique si l’expression spécifiée a la valeur True.Relational comparison operators return a Boolean result that represents whether or not the stated expression evaluates to True. Lorsque vous appliquez le > et < opérateurs en chaînes, la comparaison est effectuée à l’aide de l’ordre de tri alphabétique normal des chaînes.When you apply the > and < operators to strings, the comparison is made using the normal alphabetical sorting order of the strings. Cet ordre peut dépendre de vos paramètres régionaux.This order can be dependent on your locale setting. Si le tri respecte la casse ou non dépend de la Option Compare paramètre.Whether the sort is case-sensitive or not depends on the Option Compare setting.

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, la première comparaison retourne False et les comparaisons restantes retournent True.In the preceding example, the first comparison returns False and the remaining comparisons return True.

Voir aussiSee Also

InvalidCastException
= (opérateur)= Operator
Priorité des opérateurs en Visual BasicOperator Precedence in Visual Basic
Opérateurs répertoriés par fonctionnalitéOperators Listed by Functionality
Dépannage des types de donnéesTroubleshooting Data Types
Opérateurs de comparaison en Visual BasicComparison Operators in Visual Basic