Compartilhar via


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

Operador Is (Visual Basic)

Operador IsNot (Visual Basic)

Operador Like (Visual Basic)

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çãoObservaçã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

Operador = (Visual Basic)

Precedência de operadores no Visual Basic

Operadores listados por Funcionalidade (Visual Basic)

InvalidCastException

Conceitos

Operadores de Comparação em Visual Basic