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 TypeOf
expressão ...Is
. A sintaxe é a seguinte:
TypeOf <objectexpression> Is <typename>
Quando typename
especifica um tipo de interface, a TypeOf
expressã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.