Partilhar via


Operadores de Comparação em Visual Basic

Operadores de comparação comparam duas expressões e retornam um valor Boolean que representa a relação entre aqueles valores.Há operadores para comparar valores numéricos, operadores para comparar sequências de caracteres e operadores para comparar objetos.Todos os três tipos de operadores serã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 retornam 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 da segunda?

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 da segunda?

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 da segunda?

23 >= 33 ' False

23 >= 23 ' True

23 >= 12 ' True

Comparando Sequências de Caracteres

Visual Basic compara sequências de caracteres usando o Operador Like (Visual Basic) bem como os operadores de comparação numérica.O operador Like permite que você especifique um padrão.A sequência de caracteres é, então, comparada com o padrão e, se há correspondência, o resultado é True.Caso contrário, o resultado é False.Os operadores numéricos permitem que você compare valores de String baseando-se em sua ordem de classificação, como os exemplos a seguir mostram.

"73" < "9"

' The result of the preceding comparison is True.

O resultado no exemplo anterior é True, porque o primeiro caractere na primeira sequência de caracteres classifica-se antes do primeiro caractere na segunda sequência de caracteres.Se os primeiros caracteres fossem iguais, a comparação iria continuar com o próximo caractere em ambas as sequências de caracteres, e assim sucessivamente.Você também pode testar a igualdade de sequências de caracteres usando o operador de igualdade, como o exemplo a seguir mostra.

"734" = "734"

' The result of the preceding comparison is True.

Se uma sequência de caracteres é prefixo de outra, como em "aa" e "aaa", a maior sequência de caracteres é considerada como sendo maior que a menor sequência de caracteres.O exemplo a seguir ilustra isto:

"aaa" > "aa"

' The result of the preceding comparison is True.

A ordem de classificação é baseada exclusivamente na comparação binária ou na comparação textual, dependendo da configuração de Option Compare.Para obter mais informações, consulte: Opção Comparar Declarações.

Comparando Objetos

Visual Basic compara dois objetos referenciando variáveis com o Operador Is (Visual Basic) e o Operador IsNot.Você pode usar qualquer destes operadores para determinar se duas variáveis de referência referem-se ao mesmo objeto instanciado.O exemplo a seguir ilustra isto:

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 é avaliado como True, porque ambas as variáveis referem-se à 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 é avaliado como False, porque apesar de as variáveis se referirem a objetos de mesmo tipo, elas se referem a diferentes instâncias deste tipo.

Quando você quiser testar se dois objetos não apontam para a mesma instância, o operador IsNot permite que você evite a gramaticalmente infeliz combinação de Not e Is.O exemplo a seguir ilustra isto:

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 Tipos de Objetos

Você pode testar se um objeto é de um tipo em particular com a expressão TypeOf... Is.A sintaxe é:

TypeOf <objectexpression> Is <typename>

Quando typename especifica um tipo de interface, então a expressão TypeOf ... Is retorna True se o objeto implementa o tipo de interface.Quando typename é um tipo de classe, então a expressão retorna True se o objeto é uma instância da classe especificada ou de uma classe que deriva da classe especificada.O exemplo a seguir ilustra isto:

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 expressão TypeOf x Is Control retorna True porque o tipo de x é Button, que herda de Control.

Para obter mais informações, consulte Operador TypeOf (Visual Basic).

Consulte também

Conceitos

Comparações de Valor

Operadores aritméticos em Visual Basic

Operadores de concatenação no Visual Basic

Operadores lógicas e bit a bit no Visual Basic

Referência

Operadores de comparação (Visual Basic)

Outros recursos

Operadores (Visual Basic)