Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 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
, 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 TypeOf
Ausdruck ...Is
ist. Die Syntax lautet wie folgt:
TypeOf <objectexpression> Is <typename>
Wenn typename
einen Schnittstellentyp angibt, gibt der Ausdruck TypeOf
...Is
True
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 x
Button
ist, der von Control
erbt.
Weitere Informationen finden Sie unter TypeOf Operator.