Operadores de comparação no Visual Basic
Os operadores de comparação comparam duas expressões e retornam um Boolean
valor que representa a relação de seus valores. Há operadores para comparar valores numéricos, operadores para comparar cadeias de caracteres e operadores para comparar objetos. Todos os três tipos de operadores são discutidos aqui.
Comparando valores numéricos
O Visual Basic compara valores numéricos usando seis operadores de comparação numérica. Cada operador usa como operandos duas expressões que são avaliadas como valores numéricos. A tabela a seguir lista os operadores e mostra exemplos de cada um.
Operador | Condição testada | Exemplos |
---|---|---|
= (Igualdade) |
O valor da primeira expressão é igual ao valor da segunda? | 23 = 33 ' False 23 = 23 ' True 23 = 12 ' False |
<> (Desigualdade) |
O valor da primeira expressão é diferente do valor da segunda? | 23 <> 33 ' True 23 <> 23 ' False 23 <> 12 ' True |
< (Menor que) |
O valor da primeira expressão é menor que o valor da segunda? | 23 < 33 ' True 23 < 23 ' False 23 < 12 ' False |
> (Maior que) |
O valor da primeira expressão é maior que o valor do segundo? | 23 > 33 ' False 23 > 23 ' False 23 > 12 ' True |
<= (Menor que ou igual a) |
O valor da primeira expressão é menor ou igual ao valor do segundo? | 23 <= 33 ' True 23 <= 23 ' True 23 <= 12 ' False |
>= (Maior que ou igual a) |
O valor da primeira expressão é maior ou igual ao valor do segundo? | 23 >= 33 ' False 23 >= 23 ' True 23 >= 12 ' True |
Comparando cadeias de caracteres
O Visual Basic compara cadeias de caracteres usando o Operador like, bem como os operadores de comparação numérica. O Like
operador permite que você especifique um padrão. A cadeia de caracteres é comparada com o padrão e, se corresponder, o resultado será True
. Caso contrário, o resultado será False
. Os operadores numéricos permitem comparar String
valores com base em sua ordem de classificação, como mostra o exemplo a seguir.
"73" < "9"
' The result of the preceding comparison is True.
O resultado no exemplo anterior é True
porque o primeiro caractere na primeira cadeia de caracteres classifica antes do primeiro caractere na segunda cadeia de caracteres. Se os primeiros caracteres fossem iguais, a comparação continuaria para o próximo caractere em ambas as cadeias de caracteres e assim por diante. Você também pode testar a igualdade de cadeias de caracteres usando o operador de igualdade, como mostra o exemplo a seguir.
"734" = "734"
' The result of the preceding comparison is True.
Se uma cadeia de caracteres for um prefixo de outra, como "aa" e "aaa", a cadeia de caracteres mais longa será considerada maior que a cadeia de caracteres mais curta. O exemplo a seguir ilustra essa situação.
"aaa" > "aa"
' The result of the preceding comparison is True.
A ordem de classificação é baseada em uma comparação binária ou em uma comparação textual, dependendo da configuração de Option Compare
. Para obter mais informações , consulte Option Compare Statement.
Comparando objetos
O Visual Basic compara duas variáveis de referência de objeto com o Operador Is e o Operador IsNot. Você pode usar qualquer um desses operadores para determinar se duas variáveis de referência se referem à mesma instância de objeto. O exemplo a seguir ilustra essa situação.
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
No exemplo anterior, x Is y
avalia como True
, porque ambas as variáveis se referem à mesma instância. Contraste esse resultado com o exemplo a seguir.
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
No exemplo anterior, x Is y
avalia como False
, porque embora as variáveis se refiram a objetos do mesmo tipo, elas se referem a instâncias diferentes desse tipo.
Quando você deseja testar dois objetos que não apontam para a mesma instância, o IsNot
operador permite evitar uma combinação gramaticalmente desajeitada de Not
e Is
. O exemplo a seguir ilustra essa situação.
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
No exemplo anterior, If a IsNot b
é equivalente a If Not a Is b
.
Comparando o tipo de objeto
Você pode testar se um objeto é de um tipo específico com a expressão TypeOf
...Is
. A sintaxe dela é a seguinte:
TypeOf <objectexpression> Is <typename>
Quando typename
especifica um tipo de interface, a expressão TypeOf
...Is
retorna True
se o objeto implementa o tipo de interface. Quando typename
for um tipo de classe, a expressão retornará True
se o objeto for uma instância da classe especificada ou de uma classe que deriva da classe especificada. O exemplo a seguir ilustra essa situação.
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
No exemplo anterior, a TypeOf x Is Control
expressão é avaliada True
porque o tipo de x
é Button
, que herda de Control
.
Para obter mais informações, consulte Operador TypeOf.