Operadores de comparação (Visual Basic)
A seguir estão os operadores de comparação definidos em Visual Basic.
<operador
<=operador
>operador
>=operador
=operador
<>operador
Como o operador (Visual Basic)
Esses operadores comparam duas expressões para determinar se ou não forem iguais, e se não for, como eles diferem.Is, IsNot, e Like são discutidas em detalhes em páginas de ajuda separadas.Os operadores de comparação relacional são discutidos em detalhes nesta página.
result = expression1 comparisonoperator expression2
result = object1 [Is | IsNot] object2
result = string Like pattern
Partes
result
Obrigatório.A Boolean valor que representa o resultado da comparação.expression
Obrigatório.Qualquer expressão.comparisonoperator
Obrigatório.Qualquer operador de comparação relacional.object1, object2
Obrigatório.Qualquer referência a nomes de objeto.string
Obrigatório.Qualquer expressão String.pattern
Obrigatório.Qualquer String expressão ou intervalo de caracteres.
Comentários
A tabela a seguir contém uma lista de operadores de comparação relacional e as condições que determinam se result é True ou False.
Operador |
TrueIF |
FalseIF |
---|---|---|
< (Menor que) |
expression1< expression2 |
expression1> =expression2 |
<= (Menor que ou igual a) |
expression1< =expression2 |
expression1> expression2 |
> (Maior que) |
expression1> expression2 |
expression1< =expression2 |
>= (Maior que ou igual a) |
expression1> =expression2 |
expression1< expression2 |
=(Igual a) |
expression1 = expression2 |
expression1< > expression2 |
<>(Não é igual a) |
expression1< > expression2 |
expression1 = expression2 |
Observação |
---|
O = Operador (Visual Basic) também é usado como um operador de atribuição. |
O Is operador, o IsNot operador e o Like o operador tem funcionalidades específicas de comparação diferentes dos operadores na tabela anterior.
Comparando os números
Ao comparar uma expressão do tipo Single a um tipo Double, o Single a expressão é convertida em Double.Esse comportamento é opostos o comportamento encontrado no Visual Basic 6.
Da mesma forma, se você comparar uma expressão do tipo Decimal a uma expressão do tipo Single ou Double, o Decimal a expressão é convertida em Single ou Double.Para Decimal expressões, qualquer valor fracionário menos de 1E-28 podem ser perdidas.Perda de dados valor fracionário pode fazer com que os dois valores sejam comparados como iguais quando não estão.Por esse motivo, você deve ter cuidado ao usar a igualdade (=) para comparar duas variáveis de ponto flutuante.É mais seguro testar se o valor absoluto da diferença entre os dois números é menor do que uma pequena tolerância aceitável.
Ponto flutuante Imprecision
Quando você trabalha com números de ponto flutuante, lembre que eles nem sempre têm uma representação precisa na memória.Isso pode levar a resultados inesperados de certas operações, como, por exemplo, a comparação de valor e o Operador Mod (Visual Basic).Para obter mais informações, consulte Solucionando problemas de tipos de dados (Visual Basic).
Comparando Sequências de Caracteres
Quando você compara seqüências de caracteres, as expressões de seqüência de caracteres são avaliadas com base em sua ordem de classificação alfabética, que depende do Option Compare configuração.
Option Compare Binarycomparações de uma ordem de classificação derivada de representações binárias internas dos caracteres da seqüência de bases.A ordem de classificação é determinada pela página de código.O exemplo a seguir mostra uma ordem de classificação binária típica.
A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø
Option Compare Textbases de seqüência comparações em uma ordem de classificação de maiúsculas e minúsculas, textual determinadas pela localidade do seu aplicativo.Ao definir Option Compare Text e classificar os caracteres no exemplo anterior, a ordem de classificação de texto seguinte se aplica:
(A=a) < (À= à) < (B=b) < (E=e) < (Ê= ê) < (Ø = ø) < (Z=z)
Dependência de localidade
Ao definir Option Compare Text, o resultado de uma comparação de seqüência de caracteres pode depender da localidade na qual o aplicativo é executado.Dois caracteres podem comparar como igual em uma localidade, mas não em outro.Se você estiver usando uma comparação de seqüência de caracteres para tomar decisões importantes, como se deseja aceitar uma tentativa de logon, você deve estar alerta a sensibilidade de localidade.Considere uma das configurações Option Compare Binary ou chamando o StrComp, que considera a localidade.
Sem especificação de tipo de programação com operadores de comparação relacional
O uso de operadores de comparação relacional com Object expressões não é permitido em Option Strict On.Quando Option Strict é Offe expression1 ou expression2 é um Object a expressão, os tipos de tempo de execução determinam como eles são comparados.A tabela a seguir mostra como as expressões são comparadas e o resultado da comparação, dependendo do tipo de tempo de execução dos operandos.
Se operandos forem |
Comparação é |
---|---|
AmbosString |
Classificar com base em características de classificação de seqüência de comparação. |
Ambas numéricas |
Objetos convertidos em Double, comparação numérica. |
Um numérico e outroString |
O String é convertido em um Double e é feita uma comparação numérica.Se a String não pode ser convertido em Double, um InvalidCastException é lançada. |
Um ou ambos são tipos de referência diferente deString |
Um InvalidCastException é lançada. |
Comparações numéricas tratam Nothing como 0.Tratam de comparações de seqüência de caracteres Nothing como "" (uma seqüência vazia).
Sobrecarga
Os operadores de comparação relacional (<.<=>, >=, =, <>) pode ser sobrecarregado, que significa que uma classe ou estrutura poderá redefinir seu comportamento quando um operando tem o tipo da classe ou estrutura.Se seu código usa qualquer um destes operadores em uma classe ou estrutura, certifique-se de que você compreende o comportamento de redefinido.Para obter mais informações, consulte Procedimentos de operador (Visual Basic).
Observe que o = Operador (Visual Basic) podem ser sobrecarregados somente como um operador de comparação relacional, e não como um operador de atribuição.
Exemplo
O exemplo a seguir mostra vários usos de operadores de comparação relacional, que você pode usar para comparar expressões.Operadores de comparação relacional retornam um Boolean resultado que representa se ou não avalia a expressão estabelecida True.Quando você aplica a > e < operadores para seqüências de caracteres, a comparação é feita usando a ordem de classificação alfabética normal das seqüências de caracteres.Esta ordem pode ser dependente de configuração de localidade.Se a classificação é diferencia maiúsculas de minúsculas ou não depende do Option Compare configuração.
Dim testResult As Boolean
testResult = 45 < 35
testResult = 45 = 45
testResult = 4 <> 3
testResult = "5" > "4444"
No exemplo anterior, a primeira comparação retorna False e as comparações restantes retornam True.
Consulte também
Tarefas
Solucionando problemas de tipos de dados (Visual Basic)
Referência
Precedência de operadores em Visual Basic
Operadores listados pela funcionalidade (Visual Basic)