Udostępnij za pośrednictwem


Operatory porównania (Visual Basic)

Poniżej przedstawiono operatory porównania zdefiniowane w języku Visual Basic.

<operator

<=operator

>operator

>=operator

=operator

<>operator

Is — Operator (Visual Basic)

IsNot — Operator (Visual Basic)

Like — Operator (Visual Basic)

Te operatory porównania dwóch wyrażeń, aby ustalić, czy nie są równe, i jeśli nie, w jaki sposób różnią się.Is, IsNot, i Like są szczegółowo na oddzielnych stronach pomocy.Operatory relacyjne porównania są szczegółowo na tej stronie.

result = expression1 comparisonoperator expression2 
result = object1 [Is | IsNot] object2 
result = string Like pattern

Części

  • result
    Wymagane.A Boolean wartości reprezentującej wyników porównania.

  • expression
    Wymagane.Każde wyrażenie.

  • comparisonoperator
    Wymagane.Dowolny relacyjny operator porównania.

  • object1, object2
    Wymagane.Wszelkie odniesienia nazw obiektów.

  • string
    Wymagane.Każdy String wyrażenie.

  • pattern
    Wymagane.Każdy String wyrażenie lub zakres znaków.

Uwagi

Następująca tabela zawiera listę operatory relacyjne porównania i warunków, które określają, czy result jest True lub False.

Operator

TrueJeżeli

FalseJeżeli

<(Mniejsze niż)

expression1< expression2

expression1> =expression2

<=(Mniejsza lub równa)

expression1< =expression2

expression1> expression2

>(Większe niż)

expression1> expression2

expression1< =expression2

>=(Większa niż lub równa)

expression1> =expression2

expression1< expression2

=(Równa)

expression1 = expression2

expression1< > expression2

<>(Nie ma wartości)

expression1< > expression2

expression1 = expression2

[!UWAGA]

= — Operator (Visual Basic) Jest również używany jako operator przypisania.

Is Operatora, IsNot operator, i Like operator ma szczególne porównanie funkcjonalności, różniące się od podmiotów gospodarczych w powyższej tabeli.

Porównanie liczb

Kiedy porównać wyrażenie typu Single do jednego typu Double, Single wyrażenie jest konwertowany na Double.To zachowanie jest naprzeciwko zachowanie programu Visual Basic 6.

Podobnie, kiedy porównać wyrażenie typu Decimal na wyrażenie typu Single lub Double, Decimal wyrażenie jest konwertowany na Single lub Double.Dla Decimal wyrażeń, wszelkie wartości ułamkowe mniej niż 1E-28 mogą zostać utracone.Takie straty wartości ułamkowe mogą powodować dwóch wartości do porównywania jako równe, gdy nie są one.Z tego powodu można należy zachować ostrożność przy użyciu równości (=) do porównywania dwóch zmiennych zmiennoprzecinkowych.Jest bezpieczniejsze sprawdzić, czy wartość bezwzględna różnicy dwóch liczb jest mniejsza niż małe zakres dopuszczalnych tolerancji.

Zmiennoprzecinkowe niedokładności

Podczas pracy z liczb zmiennoprzecinkowych, należy pamiętać, że nie zawsze są one dokładne reprezentacji w pamięci.Może to prowadzić do nieoczekiwanych wyników z niektórych operacji, takich jak porównanie wartość i Mod — Operator (Visual Basic).Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów związanych z typami danych (Visual Basic).

Porównywanie ciągów

Podczas porównywania ciągów ciąg wyrażenia są oceniane na podstawie porządku alfabetycznego sortowania zależy od Option Compare ustawienie.

Option Compare Binarypodstawy string porównania na kolejność sortowania, pochodzące z wewnętrznych binarne reprezentacji znaków.Kolejność sortowania jest określona przez stronę kodową.W poniższym przykładzie przedstawiono typowy sortowania binarny.

A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø

Option Compare Textpodstawy string dokonywania porównań w porządku sortowania bez uwzględniania wielkości liter, tekstowy określone przez ustawienia regionalne użytkownika aplikacji.Podczas ustawiania Option Compare Text i sortowania znaków w poprzednim przykładzie, stosuje się następujący porządek sortowania tekstu:

(A=a) < (À= à) < (B=b) < (E=e) < (Ê= ê) < (Ø = ø) < (Z=z)

Zależność ustawień regionalnych

Podczas ustawiania Option Compare Text, wynik porównania ciągów może zależeć od ustawień regionalnych, w którym aplikacja jest uruchomiona.Dwa znaki może porównać jako równe jeden ustawień regionalnych, ale w innym.Jeśli używasz porównywania ciągów znaków do podejmowania decyzji ważne, takich jak akceptować próby logowania, należy alert do czułości ustawień regionalnych.Należy wziąć pod uwagę albo ustawienie Option Compare Binary lub wywołujący StrComp, która uwzględnia ustawienia regionalne.

Typeless Programowanie w języku relacyjne operatory porównania

Wykorzystanie operatory relacyjne porównania z Object wyrażenia nie jest dozwolone pod Option Strict On.Gdy Option Strict jest Offoraz expression1 lub expression2 jest Object wyrażenia, typy run-time określają, w jaki sposób są porównywane.W poniższej tabeli przedstawiono, w jaki sposób są porównywane wyrażenia i wyniku porównania, w zależności od typu runtime operandy.

Jeśli są operandy

Porównanie jest

ZarównoString

Sortowanie ciąg właściwości sortowania na podstawie porównania.

Zarówno numeryczne

Obiekty są konwertowane na Double, porównanie numeryczne.

Jeden liczbowych i jedenString

String Jest konwertowany na Double i wykonywane jest porównanie numeryczne.Jeśli String nie można przekonwertować na Double, InvalidCastException jest generowane.

Jedno lub obydwa są typy odwołań innych niżString

InvalidCastException Jest generowane.

Traktuj porównanie numeryczne Nothing jako 0.Traktuj porównywanie ciągów Nothing jako "" (ciąg pusty).

Przeciążenie

Operatory relacyjne porównania (<.<=>, >=, =, <>) mogą być nadmiernie, co oznacza, że klasy lub struktury można ponownie zdefiniować zachowanie ich podczas operand ma typ tej klasy lub struktury.Jeśli kod używa dowolnego z tych operatorów na klasy lub struktury, upewnij się, że rozumiesz przedefiniować zachowanie.Aby uzyskać więcej informacji, zobacz Procedury operatorów (Visual Basic).

Warto zauważyć, że = — Operator (Visual Basic) mogą być przeciążone tylko jako operator porównania relacyjne, a nie jako operator przypisania.

Przykład

Poniższy przykład ilustruje różne sposoby operatorów porównania relacyjne, które umożliwia porównywanie wyrażeń.Operatory relacyjne porównania zwrotu Boolean wynik, który reprezentuje, niezależnie od tego, czy podane wyrażenie True.Po zastosowaniu > i < dokonywane jest porównanie operatorów na ciągi znaków, przy użyciu normalnych alfabetycznej porządku sortowania ciągi.To zamówienie może być zależny od ustawienia regionalne.W sortowaniu jest rozróżniana wielkość liter lub nie zależy od Option Compare ustawienie.

Dim testResult As Boolean
testResult = 45 < 35
testResult = 45 = 45
testResult = 4 <> 3
testResult = "5" > "4444"

W poprzednim przykładzie zwraca pierwszy porównanie False i zwraca pozostałe porównań True.

Zobacz też

Zadania

Rozwiązywanie problemów związanych z typami danych (Visual Basic)

Informacje

= — Operator (Visual Basic)

Kolejność wykonywania działań (Visual Basic)

Operatory według funkcji (Visual Basic)

InvalidCastException

Koncepcje

Operatory porównania w Visual Basic