Freigeben über


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.

Bediener 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 als 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 Truedas 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, weil 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. Im folgenden Beispiel wird dies 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. Im folgenden Beispiel wird dies 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 ausgewertet zu True, 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 als False ausgewertet, da die Variablen zwar auf Objekte desselben Typs verweisen, jedoch auf verschiedene Instanzen dieses Typs.

Wenn Sie testen möchten, ob zwei Objekte nicht auf dieselbe Instanz zeigen, können Sie mit dem IsNot Operator eine grammatikalisch unbeholfene Kombination von Not und Is vermeiden. Im folgenden Beispiel wird dies 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 ist If a IsNot b gleichwertig mit If Not a Is b.

Vergleich des Objekttyps

Sie können testen, ob ein Objekt eines bestimmten Typs mit dem TypeOfAusdruck ...Is ist. Die Syntax lautet wie folgt:

TypeOf <objectexpression> Is <typename>

Wenn typename einen Schnittstellentyp angibt, gibt der Ausdruck TypeOf...IsTrue zurück, wenn das Objekt den Schnittstellentyp implementiert. Wenn typename es sich um einen Klassentyp handelt, gibt der Ausdruck zurück True , wenn es sich bei dem Objekt um eine Instanz der angegebenen Klasse oder einer Klasse handelt, die von der angegebenen Klasse abgeleitet wird. Im folgenden Beispiel wird dies 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 vorangehenden Beispiel wird der TypeOf x Is Control Ausdruck als True ausgewertet, weil der Typ von xButton ist, der von Control erbt.

Weitere Informationen finden Sie unter TypeOf Operator.

Siehe auch