Compartir a través de


Operadores de comparación en Visual Basic

Los operadores de comparación comparan dos expresiones y devuelven un Boolean valor 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 con 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 comprobada Ejemplos
= (Igualdad) ¿El valor de la primera expresión es igual al valor del segundo? 23 = 33 ' False

23 = 23 ' True

23 = 12 ' False
<> (Desigualdad) ¿El valor de la primera expresión no es igual al valor del segundo? 23 <> 33 ' True

23 <> 23 ' False

23 <> 12 ' True
< (Menor que) ¿El valor de la primera expresión es menor que el valor del segundo? 23 < 33 ' True

23 < 23 ' False

23 < 12 ' False
> (Mayor que) ¿El valor de la primera expresión es mayor que el valor del segundo? 23 > 33 ' False

23 > 23 ' False

23 > 12 ' True
<= (Menor o igual que) ¿El valor de la primera expresión es menor o igual que el valor del segundo? 23 <= 33 ' True

23 <= 23 ' True

23 <= 12 ' False
>= (Mayor o igual que) ¿El valor de la primera expresión es mayor o igual que el valor del segundo? 23 >= 33 ' False

23 >= 23 ' True

23 >= 12 ' True

Comparación de cadenas

Visual Basic compara cadenas mediante el operador Like , así como los operadores de comparación numéricos. El Like operador 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 String valores 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 en 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 otro, como "aa" y "aaa", la cadena más larga se considera mayor que la cadena más corta. En el ejemplo siguiente se muestra esto.

"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 del valor de Option Compare. Para obtener más información, vea Option Compare Statement.

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. En el ejemplo siguiente se muestra esto.

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 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, porque aunque las variables hacen referencia a objetos del mismo tipo, hacen referencia a instancias diferentes de ese tipo.

Cuando desea probar para dos objetos que no apuntan a la misma instancia, el IsNot operador le permite evitar una combinación gramaticalmente torpe de Not y Is. En el ejemplo siguiente se muestra esto.

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 TypeOfexpresión ...Is . La sintaxis es la siguiente:

TypeOf <objectexpression> Is <typename>

Cuando typename especifica un tipo de interfaz, la TypeOfexpresión ...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. En el ejemplo siguiente se muestra esto.

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 Operador TypeOf.

Consulte también