Vergleichsoperatoren in Visual Basic (2025)

Im Folgenden werden die in Visual Basic definierten Vergleichsoperatoren aufgeführt.

<-Operator

<=-Operator

>-Operator

>=-Operator

=-Operator

<>-Operator

Is-Operator

IsNot-Operator

Like-Operator

Diese Operatoren vergleichen zwei Ausdrücke, um zu bestimmen, ob sie gleich sind und wenn nicht, wie sie sich unterscheiden. Is, IsNotund Like werden auf separaten Hilfeseiten ausführlich erläutert. Die relationalen Vergleichsoperatoren werden auf dieser Seite ausführlich erläutert.

Syntax

result = expression1 comparisonoperator expression2 result = object1 [Is | IsNot] object2 result = string Like pattern 

Bestandteile

result
Erforderlich. Ein Boolean Wert, der das Ergebnis des Vergleichs darstellt.

expression1, expression2
Erforderlich. Beliebiger Ausdruck.

comparisonoperator
Erforderlich. Jeder relationale Vergleichsoperator.

object1, object2
Erforderlich. Alle Verweisobjektnamen.

string
Erforderlich. Beliebiger String -Ausdruck.

pattern
Erforderlich. Beliebiger String Ausdruck oder Zeichenbereich.

Bemerkungen

Die folgende Tabelle enthält eine Liste der relationalen Vergleichsoperatoren und die Bedingungen, die bestimmen, ob result oder TrueistFalse.

OperatorTrue, wennFalse, wenn
< (kleiner als)expression1 < expression2expression1>= expression2
<= (kleiner oder gleich)expression1<= expression2expression1 > expression2
> (Größer als)expression1 > expression2expression1<= expression2
>= (Größer als oder gleich)expression1>= expression2expression1 < expression2
= (Ist gleich)expression1 = expression2expression1 <> expression2
<> (Ungleich)expression1 <> expression2expression1 = expression2

Hinweis

Der Operator = wird auch als Zuweisungsoperator verwendet.

Der Is Operator, der IsNot Operator und der Like Operator verfügen über spezifische Vergleichsfunktionen, die sich von den Operatoren in der vorherigen Tabelle unterscheiden.

Zahlen vergleichen

Wenn Sie einen Ausdruck vom Typ Single mit einem vom Typ Doublevergleichen, wird der Single Ausdruck in Doublekonvertiert. Dieses Verhalten ist im Gegensatz zu dem in Visual Basic 6 gefundenen Verhalten.

Wenn Sie einen Ausdruck vom Typ Decimal mit einem Ausdruck vom Typ Single oder Doublevergleichen, wird der Decimal Ausdruck in Single oder Doublekonvertiert. Bei Decimal Ausdrücken kann jeder Bruchwert kleiner als 1E-28 verlorengehen. Ein solcher Bruchwertverlust kann dazu führen, dass zwei Werte gleich sind, wenn sie nicht sind. Aus diesem Grund sollten Sie beim Verwenden der Gleichheit (=) darauf achten, zwei Gleitkommavariablen zu vergleichen. Es ist sicherer zu testen, ob der absolute Wert der Differenz zwischen den beiden Zahlen kleiner als eine kleine zulässige Toleranz ist.

Gleitkomma-Ungenauigkeit

Wenn Sie mit Gleitkommazahlen arbeiten, denken Sie daran, dass sie nicht immer eine genaue Darstellung im Arbeitsspeicher haben. Dies kann zu unerwarteten Ergebnissen aus bestimmten Vorgängen führen, z. B. Wertvergleich und Mod-Operator. Weitere Informationen finden Sie unter Problembehandlung bei Datentypen (Visual Basic).

Vergleichen von Zeichenfolgen

Wenn Sie Zeichenfolgen vergleichen, werden die Zeichenfolgenausdrücke basierend auf ihrer alphabetischen Sortierreihenfolge ausgewertet, die von der Option Compare Einstellung abhängt.

Option Compare Binary basiert String-Vergleiche auf einer Sortierreihenfolge, die von den internen binären Darstellungen der Zeichen abgeleitet ist. Die Sortierreihenfolge wird durch die Codepage bestimmt. Das folgende Beispiel zeigt eine typische binäre Sortierreihenfolge.

A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø

Option Compare Text basiert String-Vergleiche auf einer Sortierreihenfolge, bei der Groß- und Kleinschreibung nicht berücksichtigt wird und die durch das Gebietsschema Ihrer Anwendung bestimmt wird. Wenn Sie die Zeichen im vorherigen Beispiel festlegen Option Compare Text und sortieren, gilt die folgende Textsortierreihenfolge:

(A=a) < (À= à) < (B=b) < (E=e) < (Ê= ê) < (Ø = ø) < (Z=z)

Abhängigkeit vom Gebietsschema

Wenn Sie festlegen Option Compare Text, kann das Ergebnis eines Zeichenfolgenvergleichs vom Gebietsschema abhängen, in dem die Anwendung ausgeführt wird. Zwei Zeichen können in einem Gebietsschema gleich sein, aber nicht in einem anderen. Wenn Sie einen Zeichenfolgenvergleich verwenden, um wichtige Entscheidungen zu treffen, z. B. ob ein Anmeldeversuch akzeptiert werden soll, sollten Sie die Gebietsschemasensitivität beachten. Erwägen Sie, entweder Option Compare Binary festzulegen oder aufzurufen StrComp, was das Gebietsschema berücksichtigt.

Typlose Programmierung mit relationalen Vergleichsoperatoren

Die Verwendung relationaler Vergleichsoperatoren mit Object Ausdrücken ist unter Option Strict Onnicht zulässig. Wenn Option Strict , und entweder Off oder expression1 ein expression2 Ausdruck istObject, bestimmen die Laufzeittypen, wie sie verglichen werden. Die folgende Tabelle zeigt, wie die Ausdrücke verglichen werden und das Ergebnis des Vergleichs abhängig vom Laufzeittyp der Operanden.

Wenn Operanden sindVergleich ist:
Beides StringSortiervergleich basierend auf Zeichenfolgensortierungseigenschaften.
Beide numerischIn einen numerischen Vergleich konvertierte DoubleObjekte.
Ein numerischer und eins StringDer String wird in einen Double konvertiert, und ein numerischer Vergleich wird durchgeführt. Wenn nicht String in konvertiert Doublewerden kann, wird ein InvalidCastException ausgelöst.
Entweder oder beide sind andere Verweistypen als StringEs wird eine InvalidCastException ausgelöst.

Numerische Vergleiche behandeln Nothing als 0. Zeichenfolgenvergleiche behandeln Nothing als "" (eine leere Zeichenfolge).

Überladen

Die relationalen Vergleichsoperatoren (<. <=, , >>=, =, <>) können überladen werden, was bedeutet, dass eine Klasse oder Struktur ihr Verhalten neu definieren kann, wenn ein Operand über den Typ dieser Klasse oder Struktur verfügt. Wenn Ihr Code eine dieser Operatoren für eine solche Klasse oder Struktur verwendet, sollten Sie das neu definierte Verhalten verstehen. Weitere Informationen finden Sie unter Operator Procedures.

Beachten Sie, dass der Operator = nur als relationaler Vergleichsoperator und nicht als Zuweisungsoperator überladen werden kann.

Beispiel

Das folgende Beispiel zeigt verschiedene Verwendungen relationaler Vergleichsoperatoren, die Sie zum Vergleichen von Ausdrücken verwenden. Relationale Vergleichsoperatoren geben ein Boolean Ergebnis zurück, das angibt, ob der angegebene Ausdruck als ausgewertet wird True. Wenn Sie die > Operatoren und < auf Zeichenfolgen anwenden, wird der Vergleich mit der normalen alphabetischen Sortierreihenfolge der Zeichenfolgen durchgeführt. Diese Reihenfolge kann von Ihrer Gebietsschemaeinstellung abhängig sein. Ob bei der Sortierung die Groß-/Kleinschreibung beachtet wird oder nicht, hängt von der Einstellung Option Compare ab.

Dim x As testClassDim y As New testClass()x = yIf x Is y Then ' Insert code to run if x and y point to the same instance.End If

Im vorherigen Beispiel gibt der erste Vergleich zurück False , und die restlichen Vergleiche geben zurück True.

Siehe auch

  • InvalidCastException
  • =-Operator
  • Operatorrangfolge in VisualBasic
  • Nach Funktionalität sortierte Operatoren
  • Problembehandlung bei Datentypen
  • Comparison Operators in Visual Basic
Vergleichsoperatoren in Visual Basic (2025)

References

Top Articles
Latest Posts
Recommended Articles
Article information

Author: Tish Haag

Last Updated:

Views: 5997

Rating: 4.7 / 5 (47 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Tish Haag

Birthday: 1999-11-18

Address: 30256 Tara Expressway, Kutchburgh, VT 92892-0078

Phone: +4215847628708

Job: Internal Consulting Engineer

Hobby: Roller skating, Roller skating, Kayaking, Flying, Graffiti, Ghost hunting, scrapbook

Introduction: My name is Tish Haag, I am a excited, delightful, curious, beautiful, agreeable, enchanting, fancy person who loves writing and wants to share my knowledge and understanding with you.