Operadores de comparación (Visual Basic)Comparison Operators (Visual Basic)

Estos son los operadores de comparación definidos en Visual Basic.The following are the comparison operators defined in Visual Basic.

< Operador< operator

<= Operador<= operator

> Operador> operator

>= Operador>= operator

= Operador= operator

<> Operador<> operator

Is (operador)Is Operator

IsNot (operador)IsNot Operator

Like (operador)Like Operator

Estos operadores comparan dos expresiones para determinar si son iguales y, si no, cómo se diferencian.These operators compare two expressions to determine whether or not they are equal, and if not, how they differ. Is, IsNot, y Like se tratan detalladamente en las páginas de Ayuda independientes.Is, IsNot, and Like are discussed in detail on separate Help pages. Los operadores de comparación relacional se tratan detalladamente en esta página.The relational comparison operators are discussed in detail on this page.

SintaxisSyntax

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

ElementosParts

result
Obligatorio.Required. Un Boolean valor que representa el resultado de la comparación.A Boolean value representing the result of the comparison.

expression
Obligatorio.Required. Cualquier expresión.Any expression.

comparisonoperator
Obligatorio.Required. Cualquier operador de comparación relacional.Any relational comparison operator.

object1, object2object1, object2
Obligatorio.Required. Los nombres de objeto de referencia.Any reference object names.

string
Obligatorio.Required. Cualquier expresión String .Any String expression.

pattern
Obligatorio.Required. Cualquier String expresión o un intervalo de caracteres.Any String expression or range of characters.

ComentariosRemarks

En la tabla siguiente contiene una lista de los operadores de comparación relacional y las condiciones que determinan si result es True o False.The following table contains a list of the relational comparison operators and the conditions that determine whether result is True or False.

OperadorOperator True siTrue if False siFalse if
< (Menor que)< (Less than) expression1 < expression2 expression1 >= expression2
<= (Menor o igual que)<= (Less than or equal to) expression1 <= expression2 expression1 > expression2
> (Mayor que)> (Greater than) expression1 > expression2 expression1 <= expression2
>= (Mayor o igual que)>= (Greater than or equal to) expression1 >= expression2 expression1 < expression2
= (Igual a)= (Equal to) expression1 = expression2 expression1 <> expression2
<> (No es igual a)<> (Not equal to) expression1 <> expression2 expression1 = expression2

Nota

El = (operador) también se utiliza como un operador de asignación.The = Operator is also used as an assignment operator.

El Is operador, el IsNot operador y el Like operador tiene funcionalidades de comparación específica que difieren de los operadores en la tabla anterior.The Is operator, the IsNot operator, and the Like operator have specific comparison functionalities that differ from the operators in the preceding table.

Comparación de númerosComparing Numbers

Cuando se compara una expresión de tipo Single a uno de tipo Double, Single expresión se convierte en Double.When you compare an expression of type Single to one of type Double, the Single expression is converted to Double. Este comportamiento es opuesto del comportamiento encontrado en Visual Basic 6.This behavior is opposite to the behavior found in Visual Basic 6.

De forma similar, cuando se compara una expresión de tipo Decimal en una expresión de tipo Single o Double, Decimal expresión se convierte en Single o 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. Para Decimal expresiones, cualquier valor fraccionario menor que 1E-28 podría perderse.For Decimal expressions, any fractional value less than 1E-28 might be lost. Dicha pérdida de valor fraccionario puede hacen que se consideran iguales cuando no estén dos valores.Such fractional value loss may cause two values to compare as equal when they are not. Por este motivo, debe tener cuidado al usar la igualdad (=) para comparar dos variables de punto flotante.For this reason, you should take care when using equality (=) to compare two floating-point variables. Es más seguro comprobar si el valor absoluto de la diferencia entre los dos números es menor que el mínimo aceptable.It is safer to test whether the absolute value of the difference between the two numbers is less than a small acceptable tolerance.

Punto flotante imprecisiónFloating-point Imprecision

Cuando se trabaja con números de punto flotante, tenga en cuenta que no siempre tienen una representación precisa en memoria.When you work with floating-point numbers, keep in mind that they do not always have a precise representation in memory. Esto podría provocar resultados inesperados en ciertas operaciones, como la comparación de valor y el Mod (operador).This could lead to unexpected results from certain operations, such as value comparison and the Mod Operator. Para obtener más información, consulte solución de problemas de los tipos de datos.For more information, see Troubleshooting Data Types.

Comparar cadenasComparing Strings

Cuando se comparan cadenas, las expresiones de cadena se evalúan según su criterio de ordenación alfabética, que depende el Option Compare configuración.When you compare strings, the string expressions are evaluated based on their alphabetical sort order, which depends on the Option Compare setting.

Option Compare Binary comparaciones en un criterio de ordenación que se deriva de las representaciones binarias internas de los caracteres de cadenas de bases de datos.Option Compare Binary bases string comparisons on a sort order derived from the internal binary representations of the characters. El criterio de ordenación viene determinada por la página de códigos.The sort order is determined by the code page. El ejemplo siguiente muestra un criterio de ordenación binario típico.The following example shows a typical binary sort order.

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

Option Compare Text bases de datos de cadena comparaciones en un criterio de ordenación textual entre mayúsculas y minúsculas determinado por la configuración regional de la aplicación.Option Compare Text bases string comparisons on a case-insensitive, textual sort order determined by your application's locale. Al establecer Option Compare Text y ordenar los caracteres en el ejemplo anterior, se aplica el criterio de ordenación de texto siguiente: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)

Dependencia de la configuración regionalLocale Dependence

Al establecer Option Compare Text, el resultado de una comparación de cadenas puede depender de la configuración regional en que se ejecuta la aplicación.When you set Option Compare Text, the result of a string comparison can depend on the locale in which the application is running. Pueden comparar dos caracteres como iguales en una configuración regional, pero no en otro.Two characters might compare as equal in one locale but not in another. Si está utilizando una comparación de cadenas para tomar decisiones importantes, por ejemplo, si desea aceptar un intento de inicio de sesión, debe aparecer la alerta para la sensibilidad de la configuración regional.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. Considere la posibilidad de cualquier Option Compare Binary o que realiza la llamada la StrComp, que tiene la configuración regional en la cuenta.Consider either setting Option Compare Binary or calling the StrComp, which takes the locale into account.

Programación sin tipos con operadores de comparación relacionalTypeless Programming with Relational Comparison Operators

El uso de operadores de comparación relacional con Object expresiones no se permite en Option Strict On.The use of relational comparison operators with Object expressions is not allowed under Option Strict On. Cuando Option Strict es Offy expression1 o expression2 es un Object expresión, los tipos de tiempo de ejecución determinan cómo se comparan.When Option Strict is Off, and either expression1 or expression2 is an Object expression, the run-time types determine how they are compared. En la tabla siguiente se muestra cómo se comparan las expresiones y el resultado de la comparación, dependiendo del tipo en tiempo de ejecución de los operandos.The following table shows how the expressions are compared and the result from the comparison, depending on the runtime type of the operands.

Si los operandos sonIf operands are La comparación esComparison is
Ambos StringBoth String Ordenar en función de las características de ordenación de cadenas de comparación.Sort comparison based on string sorting characteristics.
Ambas numéricasBoth numeric Convierten objetos en Double, comparación numérica.Objects converted to Double, numeric comparison.
Uno numérico y otro StringOne numeric and one String El String se convierte en un Double y se realiza una comparación numérica.The String is converted to a Double and numeric comparison is performed. Si el String no se puede convertir a Double, un InvalidCastException se produce.If the String cannot be converted to Double, an InvalidCastException is thrown.
Uno o ambos son tipos de referencia distinto StringEither or both are reference types other than String Se inicia una InvalidCastException.An InvalidCastException is thrown.

Tratan las comparaciones numéricas Nothing como 0.Numeric comparisons treat Nothing as 0. Tratan las comparaciones de cadenas Nothing como "" (una cadena vacía).String comparisons treat Nothing as "" (an empty string).

SobrecargaOverloading

Los operadores de comparación relacional (<.The relational comparison operators (<. <=``>, >=, =, <>) puede ser sobrecargado, lo que significa que una clase o estructura puede redefinir su comportamiento cuando un operando tiene el tipo de esa clase o estructura.<=, >, >=, =, <>) 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 el código usa cualquiera de estos operadores en una clase o estructura de este tipo, asegúrese de que comprender el comportamiento redefinido.If your code uses any of these operators on such a class or structure, be sure you understand the redefined behavior. Para obtener más información, consulta Operator Procedures.For more information, see Operator Procedures.

Tenga en cuenta que el = (operador) se puede sobrecargar únicamente como un operador de comparación relacional, no como un operador de asignación.Notice that the = Operator can be overloaded only as a relational comparison operator, not as an assignment operator.

EjemploExample

El ejemplo siguiente muestra varios usos de los operadores de comparación relacional, que se utilizan para comparar expresiones.The following example shows various uses of relational comparison operators, which you use to compare expressions. Operadores de comparación relacional devuelven un Boolean resultado que representa si se evalúa como la expresión indicada True.Relational comparison operators return a Boolean result that represents whether or not the stated expression evaluates to True. Al aplicar el > y < operadores en cadenas, la comparación se realiza mediante el criterio de ordenación alfabético normal de las cadenas.When you apply the > and < operators to strings, the comparison is made using the normal alphabetical sorting order of the strings. Este orden puede depender de la configuración regional.This order can be dependent on your locale setting. Si el criterio de ordenación distingue mayúsculas de minúsculas o no depende de la Option Compare configuración.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

En el ejemplo anterior, se devuelve la primera comparación False y las comparaciones restantes devuelven True.In the preceding example, the first comparison returns False and the remaining comparisons return True.

Vea tambiénSee also