Operadores de comparação no 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: Instrução Option Compare.
Comparando Objetos
Visual Basic compara dois objetos referenciando variáveis com o Operador Is (Visual Basic) e o Operador IsNot (Visual Basic). 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
Referência
Operadores de comparação (Visual Basic)
Conceitos
Comparações de valor (Visual Basic)
Operadores aritméticos no Visual Basic
Operadores de concatenação no Visual Basic
Operadores lógicos e bit a bit no Visual Basic