Compartilhar via


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.

Confira também