Freigeben über


Gewusst wie: Bestimmen der Gleichheit zweier Objekte

Aktualisiert: November 2007

Für Visual Basic gelten zwei Objekte als identisch, wenn deren Zeiger gleich sind, d. h., wenn beide Variablen im Arbeitsspeicher auf die gleiche Klasseninstanz zeigen. Dieser Vergleich ist z. B. sinnvoll, wenn Sie feststellen möchten, ob die aktuelle Instanz (Me) mit einer bestimmten Instanz wie Form2 identisch ist.

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 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 Is-Operator 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 IsNot-Operator 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 IsNot-Operator 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 = Me
objB = New System.Windows.Forms.Form()
objC = Me
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

Konzepte

Objektvariablen in Visual Basic

Werte von Objektvariablen

Referenz

Object-Datentyp

Is-Operator (Visual Basic)

IsNot-Operator