Vergleichsoperatoren in Visual Basic
Vergleichsoperatoren vergleichen zwei Ausdrücke und geben einen Boolean
Wert zurück, der die Beziehung ihrer Werte darstellt. Es gibt Operatoren zum Vergleichen numerischer Werte, Operatoren zum Vergleichen von Zeichenfolgen und Operatoren zum Vergleichen von Objekten. Alle drei Arten von Operatoren werden hier erläutert.
Vergleichen numerischer Werte
Visual Basic vergleicht numerische Werte mithilfe von sechs numerischen Vergleichsoperatoren. Jeder Operator verwendet als Operanden zwei Ausdrücke, die als numerische Werte ausgewertet werden. Die folgende Tabelle enthält die Operatoren und zeigt Beispiele für die einzelnen Operatoren.
Operator | Bedingungstest | Beispiele |
---|---|---|
= (Gleichheit) |
Entspricht der Wert des ersten Ausdrucks dem Wert des zweiten Ausdrucks? | 23 = 33 ' False 23 = 23 ' True 23 = 12 ' False |
<> (Ungleichheit) |
Ist der Wert des ersten Ausdrucks ungleich dem Wert des zweiten Ausdrucks? | 23 <> 33 ' True 23 <> 23 ' False 23 <> 12 ' True |
< (kleiner als) |
Ist der Wert des ersten Ausdrucks kleiner als der Wert der zweiten? | 23 < 33 ' True 23 < 23 ' False 23 < 12 ' False |
> (Größer als) |
Ist der Wert des ersten Ausdrucks größer als der Wert des zweiten Ausdrucks? | 23 > 33 ' False 23 > 23 ' False 23 > 12 ' True |
<= (kleiner oder gleich) |
Ist der Wert des ersten Ausdrucks kleiner oder gleich dem Wert des zweiten Ausdrucks? | 23 <= 33 ' True 23 <= 23 ' True 23 <= 12 ' False |
>= (Größer als oder gleich) |
Ist der Wert des ersten Ausdrucks größer oder gleich dem Wert des zweiten Ausdrucks? | 23 >= 33 ' False 23 >= 23 ' True 23 >= 12 ' True |
Vergleichen von Zeichenfolgen
Visual Basic vergleicht Zeichenfolgen mithilfe des Like-Operators sowie mit den numerischen Vergleichsoperatoren. Mit dem Like
Operator können Sie ein Muster angeben. Die Zeichenfolge wird dann mit dem Muster verglichen, und wenn sie übereinstimmen, lautet True
das Ergebnis . Andernfalls ist das Ergebnis False
. Mit den numerischen Operatoren können Sie Werte basierend auf ihrer Sortierreihenfolge vergleichen String
, wie im folgenden Beispiel gezeigt.
"73" < "9"
' The result of the preceding comparison is True.
Das Ergebnis im vorherigen Beispiel ist True
, da das erste Zeichen in der ersten Zeichenfolge vor dem ersten Zeichen in der zweiten Zeichenfolge sortiert wird. Wenn die ersten Zeichen gleich waren, würde der Vergleich in beiden Zeichenfolgen mit dem nächsten Zeichen fortgesetzt usw. Sie können auch die Gleichheit von Zeichenfolgen mit dem Gleichheitsoperator testen, wie im folgenden Beispiel gezeigt.
"734" = "734"
' The result of the preceding comparison is True.
Wenn eine Zeichenfolge ein Präfix eines anderen ist, z. B. „aa“ und „aaa“, wird die längere Zeichenfolge als größer als die kürzere Zeichenfolge betrachtet. Dies wird anhand des folgenden Beispiels veranschaulicht.
"aaa" > "aa"
' The result of the preceding comparison is True.
Die Sortierreihenfolge basiert entweder auf einem binären Vergleich oder einem Textvergleich je nach Einstellung von Option Compare
. Weitere Informationen finden Sie unter Option Compare-Anweisung.
Vergleichen von Objekten
Visual Basic vergleicht zwei Objektverweisvariablen mit dem Is-Operator und dem IsNot-Operator. Mit einem dieser Operatoren können Sie ermitteln, ob zwei Referenzvariablen auf dieselbe Objektinstanz verweisen. Dies wird anhand des folgenden Beispiels veranschaulicht.
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
Im vorherigen Beispiel wird x Is y
zu True
ausgewertet, da beide Variablen auf dieselbe Instanz verweisen. Vergleichen Sie dieses Ergebnis mit dem folgenden Beispiel.
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
Im vorherigen Beispiel wird x Is y
zu False
ausgewertet, da die Variablen zwar auf Objekte desselben Typs verweisen, sie jedoch auf verschiedene Instanzen dieses Typs verweisen.
Wenn Sie auf zwei Objekte testen möchten, die nicht auf dieselbe Instanz zeigen, können Sie mit dem IsNot
-Operator eine grammatikalisch ungeschickte Kombination von Not
und Is
vermeiden. Dies wird anhand des folgenden Beispiels veranschaulicht.
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
Im vorherigen Beispiel If a IsNot b
entspricht dies If Not a Is b
.
Vergleichen des Objekttyps
Sie können mit dem TypeOf
...Is
-Ausdruck testen, ob ein Objekt von einem bestimmten Typ ist. Die Syntax lautet wie folgt:
TypeOf <objectexpression> Is <typename>
Wenn typename
ein Schnittstellentyp angegeben wird, gibt der TypeOf
...Is
Ausdruck True
zurück, wenn das Objekt den Schnittstellentyp implementiert. Wenn typename
ein Klassentyp ist, gibt der Ausdruck True
zurück, wenn es sich bei dem Objekt um eine Instanz der angegebenen Klasse oder einer Klasse handelt, die von der angegebenen Klasse abgeleitet wird. Dies wird anhand des folgenden Beispiels veranschaulicht.
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
Im vorherigen Beispiel wertet der TypeOf x Is Control
Ausdruck True
aus, weil der Typ von x
Button
ist, von dem Control
geerbt wird.
Weitere Informationen finden Sie unter TypeOf-Operator.