Operatory porównania w Visual Basic
Operatory porównania porównują dwa wyrażenia i zwracają wartość reprezentującą relację Boolean
ich wartości. Istnieją operatory do porównywania wartości liczbowych, operatorów do porównywania ciągów i operatorów do porównywania obiektów. Wszystkie trzy typy operatorów są omawiane w niniejszym dokumencie.
Porównywanie wartości liczbowych
Visual Basic porównuje wartości liczbowe przy użyciu sześciu operatorów porównania liczbowego. Każdy operator przyjmuje jako operandy dwa wyrażenia, które oceniają wartości liczbowe. W poniższej tabeli wymieniono operatory i przedstawiono przykłady każdego z nich.
Operator | Testowany warunek | Przykłady |
---|---|---|
= (Równość) |
Czy wartość pierwszego wyrażenia jest równa wartości drugiej? | 23 = 33 ' False 23 = 23 ' True 23 = 12 ' False |
<> (Nierówności) |
Czy wartość pierwszego wyrażenia jest nierówna wartości drugiej? | 23 <> 33 ' True 23 <> 23 ' False 23 <> 12 ' True |
< (Mniej niż) |
Czy wartość pierwszego wyrażenia jest mniejsza niż wartość drugiej? | 23 < 33 ' True 23 < 23 ' False 23 < 12 ' False |
> (Większe niż) |
Czy wartość pierwszego wyrażenia jest większa niż wartość drugiego? | 23 > 33 ' False 23 > 23 ' False 23 > 12 ' True |
<= (Mniejsze niż lub równe) |
Czy wartość pierwszego wyrażenia jest mniejsza lub równa wartości drugiej? | 23 <= 33 ' True 23 <= 23 ' True 23 <= 12 ' False |
>= (Większe niż lub równe) |
Czy wartość pierwszego wyrażenia jest większa lub równa wartości drugiej? | 23 >= 33 ' False 23 >= 23 ' True 23 >= 12 ' True |
Porównywanie ciągów
Visual Basic porównuje ciągi przy użyciu operatora Like, a także operatorów porównania liczbowego. Operator Like
umożliwia określenie wzorca. Ciąg jest następnie porównywany ze wzorcem, a jeśli jest zgodny, wynik to True
. W przeciwnym razie wynik to False
. Operatory liczbowe umożliwiają porównywanie String
wartości na podstawie ich kolejności sortowania, jak pokazano w poniższym przykładzie.
"73" < "9"
' The result of the preceding comparison is True.
Wynikiem powyższego przykładu jest to True
, że pierwszy znak w pierwszym ciągu sortuje przed pierwszym znakiem w drugim ciągu. Jeśli pierwsze znaki były równe, porównanie będzie kontynuowane do następnego znaku w obu ciągach itd. Możesz również przetestować równość ciągów przy użyciu operatora równości, jak pokazano w poniższym przykładzie.
"734" = "734"
' The result of the preceding comparison is True.
Jeśli jeden ciąg jest prefiksem innego, takiego jak "aaa" i "aaa", dłuższy ciąg jest uznawany za większy niż krótszy ciąg. Ilustruje to poniższy przykład.
"aaa" > "aa"
' The result of the preceding comparison is True.
Kolejność sortowania zależy od porównania binarnego lub porównania tekstowego Option Compare
w zależności od ustawienia . Aby uzyskać więcej informacji, zobacz Option Compare, instrukcja.
Porównywanie obiektów
Visual Basic porównuje dwie zmienne odwołania do obiektu z operatorem Is i Operator IsNot. Możesz użyć jednego z tych operatorów, aby określić, czy dwie zmienne referencyjne odwołują się do tego samego wystąpienia obiektu. Ilustruje to poniższy przykład.
Dim x As testClass
Dim y As New testClass()
x = y
If x Is y Then
' Insert code to run if x and y point to the same instance.
End If
W poprzednim przykładzie x Is y
funkcja oblicza wartość True
, ponieważ obie zmienne odwołują się do tego samego wystąpienia. Skontrastuj ten wynik, korzystając z poniższego przykładu.
Dim x As New customer()
Dim y As New customer()
If x Is y Then
' Insert code to run if x and y point to the same instance.
End If
W poprzednim przykładzie x Is y
daje wartość , False
ponieważ zmienne odwołują się do obiektów tego samego typu, odwołują się one do różnych wystąpień tego typu.
Jeśli chcesz przetestować dwa obiekty, które nie wskazują na to samo wystąpienie, IsNot
operator pozwala uniknąć gramatycznej niezdarnej kombinacji Not
elementów i Is
. Ilustruje to poniższy przykład.
Dim a As New classA()
Dim b As New classB()
If a IsNot b Then
' Insert code to run if a and b point to different instances.
End If
W poprzednim przykładzie If a IsNot b
element jest odpowiednikiem If Not a Is b
elementu .
Porównywanie typu obiektu
Możesz sprawdzić, czy obiekt jest określonym typem za pomocą TypeOf
wyrażenia ...Is
. Składnia wygląda następująco:
TypeOf <objectexpression> Is <typename>
Gdy typename
określa typ interfejsu TypeOf
, wyrażenie ...Is
zwraca True
, jeśli obiekt implementuje typ interfejsu. Gdy typename
jest typem klasy, wyrażenie zwraca True
, jeśli obiekt jest wystąpieniem określonej klasy lub klasy pochodzącej z określonej klasy. Ilustruje to poniższy przykład.
Dim x As System.Windows.Forms.Button
x = New System.Windows.Forms.Button()
If TypeOf x Is System.Windows.Forms.Control Then
' Insert code to run if x is of type System.Windows.Forms.Control.
End If
W poprzednim przykładzie TypeOf x Is Control
wyrażenie oblicza wartość True
, ponieważ typ x
to Button
, który dziedziczy z Control
klasy .
Aby uzyskać więcej informacji, zobacz TypeOf Operator.