Partilhar 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. Existem 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

Visual Basic compara valores numéricos usando seis operadores de comparação numérica. Cada operador toma como operandos duas expressões que avaliam 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 é desigual ao valor da segunda? 23 <> 33 ' True

23 <> 23 ' False

23 <> 12 ' True
< (Menos que) O valor da primeira expressão é menor do que o valor da segunda? 23 < 33 ' True

23 < 23 ' False

23 < 12 ' False
> (Maior que) O valor da primeira expressão é maior do que o valor da segunda? 23 > 33 ' False

23 > 23 ' False

23 > 12 ' True
<= (Inferior ou igual a) O valor da primeira expressão é menor ou igual ao valor da segunda? 23 <= 33 ' True

23 <= 23 ' True

23 <= 12 ' False
>= (Maior ou igual a) O valor da primeira expressão é maior ou igual ao valor da segunda? 23 >= 33 ' False

23 >= 23 ' True

23 >= 12 ' True

Comparando cadeias de caracteres

Visual Basic compara cadeias de caracteres usando o operador Like, bem como os operadores de comparação numérica. O Like operador permite especificar um padrão. A cadeia de caracteres é então comparada com o padrão e, se corresponder, o resultado é True. Caso contrário, o resultado é 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 com 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 equality, como mostra o exemplo a seguir.

"734" = "734"

' The result of the preceding comparison is True.

Se uma string é um prefixo de outra, como "aa" e "aaa", a string mais longa é considerada maior do que a string mais curta. O exemplo a seguir ilustra isso.

"aaa" > "aa"

' The result of the preceding comparison is True.

A ordem de classificação é baseada em uma comparação binária ou uma comparação textual, dependendo da configuração de Option Compare. Para obter mais informações, consulte Instrução de comparação de opções.

Comparando objetos

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 isso.

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 a True, porque ambas as variáveis se referem à mesma instância. Compare este 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 a 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 isso.

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 TypeOfexpressão ...Is . A sintaxe é a seguinte:

TypeOf <objectexpression> Is <typename>

Quando typename especifica um tipo de interface, a TypeOfexpressão ...Is retorna True se o objeto implementa o tipo de interface. Quando typename é um tipo de classe, a expressão retorna 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 isso.

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 como True porque o tipo de x é Button, que herda de Control.

Para obter mais informações, consulte TypeOf Operator.

Consulte também