Vergleichsoperatoren in Visual Basic

Aktualisiert: November 2007

Vergleichsoperatoren vergleichen zwei Ausdrücke und geben einen Boolean-Wert zurück, der die Beziehung zwischen ihren Werten darstellt. Es gibt Operatoren für das Vergleichen von numerischen Werten, Operatoren für Zeichenfolgen und Operatoren für Objekte. Alle drei Typen werden an dieser Stelle erläutert.

Vergleichen von numerischen Werten

Visual Basic vergleicht numerische Werte mithilfe von sechs numerischen Vergleichsoperatoren. Jeder Operator akzeptiert zwei Ausdrücke als Operanden, die numerische Werte ergeben. In der folgenden Tabelle werden die Operatoren aufgelistet und für jeden Operator Beispiele dargestellt.

Operator

Getestete Bedingung

Beispiele

= (Gleich)

Ist der Wert des ersten Ausdrucks gleich dem Wert des zweiten Ausdrucks?

23 = 33 ' False

23 = 23 ' True

23 = 12 ' False

<> (Ungleich)

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 des zweiten Ausdrucks?

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 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 mit dem Like-Operator (Visual Basic) sowie den numerischen Vergleichsoperatoren. Mit dem Like-Operator können Sie ein Muster angeben. Die Zeichenfolge wird dann mit dem Muster verglichen, und bei Übereinstimmung ist das Ergebnis True. Andernfalls ist das Ergebnis False. Mit den numerischen Operatoren können Sie String-Werte anhand ihrer Sortierreihenfolge vergleichen, wie im folgenden Beispiel veranschaulicht.

"73" < "9"

' The result of the preceding comparison is True.

Im vorherigen Beispiel ist das Ergebnis True, weil in der Sortierreihenfolge das erste Zeichen in der ersten Zeichenfolge vor dem ersten Zeichen in der zweiten Zeichenfolge steht. Wenn die ersten Zeichen gleich wären, würde das nächste Zeichen in beiden Zeichenfolgen verglichen werden, usw. Sie können die Gleichheit von Zeichenfolgen auch mit dem Gleichheitsoperator überprüfen, wie im folgenden Beispiel veranschaulicht.

"734" = "734"

' The result of the preceding comparison is True.

Wenn eine Zeichenfolge einer anderen vorangestellt ist, z. B. "aa" und "aaa", wird die längere Zeichenfolge als größerer Wert 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 beruht entweder auf einem binären Vergleich oder einem Textvergleich. Dies hängt von der Einstellung von Option Compare ab. Weitere Informationen finden Sie unter Option Compare-Anweisung.

Vergleichen von Objekten

Visual Basic vergleicht zwei Objektverweisvariablen mit dem Is-Operator (Visual Basic) und dem IsNot-Operator. Sie können mit beiden Operatoren bestimmen, ob zwei Verweisvariablen auf die gleiche 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 ergibt x Is yTrue, da beide Variablen auf dieselbe Instanz verweisen. Vergleichen Sie dieses Ergebnis im Gegensatz dazu nun 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 ergibt x Is yFalse, da die Variablen zwar auf Objekte vom gleichen Typ, jedoch auf unterschiedliche Instanzen dieses Typs verweisen.

Wenn Sie sicherstellen möchten, dass zwei Objekte nicht auf dieselbe Instanz verweisen, können Sie mit dem IsNot-Operator die umständliche Grammatik einer 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 entsprechen sich If a IsNot b und If Not a Is b.

Vergleichen des Objekttyps

Mit dem TypeOf...Is-Ausdruck können Sie überprüfen, ob ein Objekt von einem bestimmten Typ ist. Die Syntax lautet wie folgt:

TypeOf <objectexpression> Is <typename>

Wenn typename einen Schnittstellentyp angibt, gibt der TypeOf...Is-Ausdruck True zurück, sofern das Objekt den Schnittstellentyp implementiert. Wenn es sich bei typename um einen Klassentyp handelt, gibt der Ausdruck True zurück, sofern das Objekt eine Instanz der angegebenen Klasse oder einer Klasse ist, 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 ergibt der TypeOf x Is Control-Ausdruck True, weil x vom Typ Button ist, der von Control erbt.

Weitere Informationen finden Sie unter TypeOf-Operator (Visual Basic).

Siehe auch

Konzepte

Wertvergleiche

Arithmetische Operatoren in Visual Basic

Verkettungsoperatoren in Visual Basic

Logische und bitweise Operatoren in Visual Basic

Referenz

Vergleichsoperatoren (Visual Basic)

Weitere Ressourcen

Operatoren (Visual Basic)