Operatory porównania (Visual Basic)
Poniżej przedstawiono operatory porównania zdefiniowane w języku Visual Basic.
<operator
<=operator
>operator
>=operator
=operator
<>operator
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
Kolejność wykonywania działań (Visual Basic)
Operatory według funkcji (Visual Basic)