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 Comparew 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ść , Falseponieważ 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 belementu .

Porównywanie typu obiektu

Możesz sprawdzić, czy obiekt jest określonym typem za pomocą TypeOfwyraż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 Controlklasy .

Aby uzyskać więcej informacji, zobacz TypeOf Operator.

Zobacz też