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.