Operadores de comparación en Visual Basic

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

Comparación de 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. En la tabla siguiente se enumeran los operadores y se muestran ejemplos de cada uno.

Operador Condición probada Ejemplos
= (Igualdad) ¿Es el valor de la primera expresión igual al valor de la segunda? 23 = 33 ' False

23 = 23 ' True

23 = 12 ' False
<> (Desigualdad) ¿Es el valor de la primera expresión desigual al 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 el operador Like, así como los operadores de comparación numéricos. El operador Like permite especificar un patrón. A continuación, la cadena se compara con el patrón y, si coincide, el resultado es True. De lo contrario, el resultado es False. Los operadores numéricos permiten comparar valores String en función de su criterio de ordenación, como se muestra 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 del primer carácter de la segunda cadena. Si los primeros caracteres fueran iguales, la comparación continuaría con el siguiente carácter de ambas cadenas, etc. También puede probar la igualdad de cadenas mediante el operador de igualdad, como se muestra 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 cadena 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 basa en una comparación binaria o en una comparación textual en función de la configuración de Option Compare. Para más información, consulte Instrucción (Option Compare).

Comparación de objetos

Visual Basic compara dos variables de referencia de objeto con el operador Is y el operador IsNot. Puede usar cualquiera de estos operadores para determinar si dos variables de referencia hacen referencia 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, ya que ambas variables hacen referencia a la misma instancia. Compare este resultado con el 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, ya que aunque las variables hacen referencia a objetos del mismo tipo, hacen referencia a instancias diferentes de ese tipo.

Si desea probar dos objetos que no apuntan a la misma instancia, el operador IsNot le permite evitar una combinación gramaticalmente inadecuada de Not y 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.

Comparación del tipo de objeto

Puede probar si un objeto es de un tipo determinado con 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 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 ya que el tipo de x es Button, que se hereda de Control.

Para más información, consulte Operador TypeOf.

Consulte también