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 Trueausgewertet, 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 xButton ist, von dem Control geerbt wird.

Weitere Informationen finden Sie unter TypeOf-Operator.

Siehe auch