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
Esses operadores comparam duas expressões para determinar se ou não forem iguais, e se não, a diferença entre elas. Is, IsNot, e Like são discutidas detalhadamente em separados em páginas de Ajuda . 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
Parts
result
Required. A Boolean valor que representa o resultado da comparação.expression
Required. Qualquer expressão.comparisonoperator
Required. operadorde qualquer comparação relacional.object1, object2
Required. Qualquer referência a nomes de objeto .string
Required. Any String expression.pattern
Required. Qualquer String expressão ou um 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.
Operator |
TrueIF |
FalseIF |
---|---|---|
< (Less than) |
expression1 < expression2 |
expression1 >= expression2 |
<= (Less than or equal to) |
expression1 <= expression2 |
expression1 > expression2 |
> (Greater than) |
expression1 > expression2 |
expression1 <= expression2 |
>= (Greater than or equal to) |
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 operadorde atribuição. |
O Isdeoperador, o IsNotdeoperadore o Likeoperador tem funcionalidades específicas de comparação, que diferem os 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 é o oposto ao comportamento encontrado no Visual Basic 6.
Da mesma forma, ao 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 causar 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 flutuante variáveis de ponto de-. É mais seguro para teste se o valor absoluto da diferença entre os dois números é menor do que uma pequena tolerância de aceitável.
Imprecision de ponto flutuante de-
When you work with floating-point numbers, keep in mind that they do not always have a precise representation in memory. Isso pode levar a resultados inesperados de certas operações, como, por exemplo, a comparação de valor e o Operador Mod (Visual Basic). For more information, see Solucionando problemas de tipos de dados (Visual Basic).
Comparing Strings
Quando você compara seqüências de caracteres, a expressões de seqüência são avaliadas com base em suas alfabética ordem de classificação, que depende da Option Compare configuração.
Option Compare Binarycomparações de ordem de classificação derivado as interno binário representações 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 típica binário ordem de classificação.
A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø
Option Compare Textbases de seqüência comparações em um caso-kana, textuais ordem de classificação determinadas pela localidadedo seu aplicativo. Ao definir Option Compare Text e classificar os caracteres no exemplo anterior, a seguinte ordem de classificação de texto 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 está sendo 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 aceitar uma tentativa de logon, você deve estar alerta a sensibilidade de localidade . Considere a possibilidade de qualquer configuraçãodeOption Compare Binary ou chamada a StrComp, que leva a localidade em conta.
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, o tempo de execução-tipos determinam como são comparadas. 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 os operandos forem |
Comparação é |
---|---|
AmbosString |
Comparação deClassificação com base em características de classificação de seqüência. |
Ambas numéricas |
Objetos convertidos em Double, uma comparação numérica. |
Um numérico e umString |
O String é convertido em um Double e é feita uma comparação numérica. Se o String não pode ser convertido em Double, um InvalidCastException é lançada. |
Um ou ambos são tipos de referência diferenteString |
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).
Overloading
Os operadores de comparação relacional (<. <=>, >=, =, <>) pode ser sobrecarregado, que significa que uma classe ou estrutura pode redefinir seu comportamento quando um operando tem o tipo da classe ou estrutura. Se o seu código usa qualquer um desses operadores em uma classe ou estrutura, certifique-se de que você compreender o comportamento redefinido. For more information, see Procedimentos de operador (Visual Basic).
Observe que o Operador = (Visual Basic) podem ser sobrecarregados somente como uma comparação relacional operador, não como um operadorde atribuição.
Exemplo
O exemplo a seguir mostra vários usos de operadores de comparação relacional, que podem ser usados para comparar expressões. Operadores de comparação relacional retornam um Boolean resultado que representa ou não avalia a expressão declarada True. Quando você aplicar o > e < operadores para seqüências de caracteres, a comparação é feita usando a ordem de classificação alfabética normal de seqüências de caracteres. Esta ordem pode ser dependente de suaconfiguraçãode localidade. Se a classificação for o caso-confidencial 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 no Visual Basic
Operadores listados por Funcionalidade (Visual Basic)