Freigeben über


Gewusst wie: Bestimmen der Gleichheit zweier Objekte (Visual Basic)

In Visual Basic gelten zwei Variablenverweise als identisch, wenn deren Zeiger gleich sind, d. h., wenn beide Variablen im Arbeitsspeicher auf die gleiche Klasseninstanz zeigen. So können Sie in einer Windows Forms-Anwendung einen Vergleich ausführen, um zu bestimmen, ob die aktuelle Instanz (Me) mit einer bestimmten Instanz identisch ist, beispielsweise Form2.

Visual Basic stellt zwei Operatoren zum Vergleich von Zeigern bereit. Der Is-Operator (Visual Basic) gibt True zurück, wenn die Objekte identisch sind. Der IsNot-Operator (Visual Basic) gibt True zurück, wenn sie nicht identisch sind.

Bestimmen der Gleicheit zweier Objekte

So stellen Sie fest, ob zwei Objekte identisch sind

  1. Richten Sie einen Boolean-Ausdruck ein, um die beiden Objekte zu testen.

  2. Verwenden Sie im Testausdruck den Operator Is mit den beiden Objekten als Operanden.

    Is gibt True zurück, wenn die Objekte auf die gleiche Klasseninstanz zeigen.

Bestimmen der Ungleichheit zweier Objekte

Es kann vorkommen, dass Sie eine Aktion ausführen möchten, wenn die beiden Objekte nicht identisch sind. Dabei ist es eventuell umständlich, Not und Is zu kombinieren, wie z. B. bei If Not obj1 Is obj2. In einem solchen Fall können Sie den Operator IsNot verwenden.

So stellen Sie fest, ob zwei Objekte nicht identisch sind

  1. Richten Sie einen Boolean-Ausdruck ein, um die beiden Objekte zu testen.

  2. Verwenden Sie im Testausdruck den Operator IsNot mit den beiden Objekten als Operanden.

    IsNot gibt True zurück, wenn die Objekte nicht auf die gleiche Klasseninstanz zeigen.

Beispiel

Im folgenden Beispiel werden Paare von Object-Variablen daraufhin getestet, ob sie auf die gleiche Klasseninstanz zeigen.

Dim objA, objB, objC As Object
objA = My.User
objB = New ApplicationServices.User
objC = My.User
MsgBox("objA different from objB? " & CStr(objA IsNot objB))
MsgBox("objA identical to objC? " & CStr(objA Is objC))

Durch den Code im vorhergehenden Beispiel wird folgende Ausgabe angezeigt.

objA different from objB? True

objA identical to objC? True

Siehe auch

Aufgaben

Gewusst wie: Bestimmen des Bezugs zwischen zwei Objekten (Visual Basic)

Referenz

Object-Datentyp

Is-Operator (Visual Basic)

IsNot-Operator (Visual Basic)

Konzepte

Objektvariablen in Visual Basic

Werte von Objektvariablen (Visual Basic)

Me, "My", "MyBase" und "MyClass" in Visual Basic