Operadores de comparación en Visual Basic

Actualización: noviembre 2007

Los operadores de comparación comparan dos expresiones y devuelven un valor Boolean que representa la relación entre sus valores. Existen operadores para comparar valores numéricos, operadores para comparar cadenas y operadores para comparar objetos. Los tres tipos de operadores se describen a continuación.

Comparar valores numéricos

Visual Basic compara valores numéricos mediante seis operadores de comparación numéricos. Cada operador toma como operandos dos expresiones que se evalúan como valores numéricos. La tabla siguiente enumera los operadores y muestra ejemplos de cada uno.

Operador

Condición que prueba

Ejemplos

= (Igualdad)

¿Es igual el valor de la primera expresión que el de la segunda?

23 = 33 ' False

23 = 23 ' True

23 = 12 ' False

<> (Desigualdad)

¿Es distinto el valor de la primera expresión del valor de la segunda?

23 <> 33 ' True

23 <> 23 ' False

23 <> 12 ' True

< (Menor que)

¿Es el valor de la primera expresión menor que el valor de la segunda?

23 < 33 ' True

23 < 23 ' False

23 < 12 ' False

> (Mayor que)

¿Es el valor de la primera expresión mayor que el valor de la segunda?

23 > 33 ' False

23 > 23 ' False

23 > 12 ' True

<= (Menor o igual que)

¿Es el valor de la primera expresión menor o igual que el valor de la segunda?

23 <= 33 ' True

23 <= 23 ' True

23 <= 12 ' False

>= (Mayor o igual que)

¿Es el valor de la primera expresión mayor o igual que el valor de la segunda?

23 >= 33 ' False

23 >= 23 ' True

23 >= 12 ' True

Comparar cadenas

Visual Basic compara cadenas mediante Like (operador, Visual Basic) así como los operadores de comparación numéricos. El operador Like le permite especificar un modelo. La cadena se compara a continuación contra el modelo y si coincide, el resultado es True. De lo contrario, el resultado es False. Los operadores numéricos permiten comparar valores String basándose en su criterio de ordenación, como se indica en el ejemplo siguiente:

"73" < "9"

' The result of the preceding comparison is True.

El resultado del ejemplo anterior es True porque el primer carácter de la primera cadena se ordena antes que el primer carácter de la segunda cadena. Si los primeros caracteres fueran iguales, la comparación continuaría con el siguiente carácter de las dos cadenas, y así sucesivamente. También puede probar la igualdad de cadenas utilizando al operador de igualdad, como se puede ver en el ejemplo siguiente.

"734" = "734"

' The result of the preceding comparison is True.

Si una cadena es un prefijo de otra, como "aa" y "aaa", la cadena más larga se considera mayor que la más corta. Esto se ilustra en el siguiente ejemplo:

"aaa" > "aa"

' The result of the preceding comparison is True.

El criterio de ordenación se basará en una comparación binaria o una comparación textual, en función del valor de Option Compare. Para obtener más información, vea Option Compare (Instrucción).

Comparar objetos

Visual Basic compara dos variables de referencia a objeto con Is (Operador, Visual Basic) e IsNot (Operador). Puede utilizar cualquiera de estos operadores para determinar si las dos variables de referencia se refieren a la misma instancia de objeto. Esto se ilustra en el siguiente ejemplo:

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, x Is y se evalúa como True, porque ambas variables se refieren a la misma instancia. Compare este resultado con el del ejemplo siguiente.

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

En el ejemplo anterior, x Is y se evalúa como False, porque aunque las variables hacen referencia a objetos del mismo tipo, se refieren a distintas instancias de ese tipo.

Cuando desee probar dos objetos que no señalan a la misma instancia, el operador IsNot permite evitar una combinación gramaticalmente torpe de Not e Is. Esto se ilustra en el siguiente ejemplo:

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

En el ejemplo anterior, If a IsNot b es equivalente a If Not a Is b.

Comparar tipos de objetos

Para probar si un objeto es de un tipo concreto se puede utilizar la expresión TypeOf...Is. La sintaxis es la siguiente:

TypeOf <objectexpression> Is <typename>

Cuando typename especifica un tipo de interfaz, la expresión TypeOf...Is devuelve True si el objeto implementa el tipo de interfaz. Cuando typename es un tipo de clase, la expresión devuelve True si el objeto es una instancia de la clase especificada o de una clase que se deriva de la clase especificada. Esto se ilustra en el siguiente ejemplo:

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

En el ejemplo anterior, la expresión TypeOf x Is Control se evalúa como True porque el tipo de x es Button, que hereda de Control.

Para obtener más información, vea TypeOf (Operador, Visual Basic).

Vea también

Conceptos

Comparaciones de valores

Operadores aritméticos en Visual Basic

Operadores de concatenación en Visual Basic

Operadores lógicos y bit a bit en Visual Basic

Referencia

Operadores de comparación (Visual Basic)

Otros recursos

Operadores (Visual Basic)