Freigeben über


Vorgehensweise: Bestimmen, ob zwei Objekte identisch sind (Visual Basic)

In Visual Basic werden zwei Variablenverweise als identisch betrachtet, wenn ihre Zeiger identisch sind, d. h., wenn beide Variablen auf dieselbe Klasseninstanz im Arbeitsspeicher verweisen. In einer Windows Forms-Anwendung können Sie zum Beispiel einen Vergleich durchführen, um zu ermitteln, ob die aktuelle Instanz (Me) mit einer bestimmten Instanz, wie Form2, identisch ist.

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

Bestimmen, ob zwei Objekte identisch sind

So ermitteln Sie, ob zwei Objekte identisch sind

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

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

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

Ermitteln, ob zwei Objekte nicht identisch sind

Manchmal möchten Sie eine Aktion ausführen, wenn die beiden Objekte nicht identisch sind, und es kann ungünstig sein, Not und Is zu kombinieren, z. B. If Not obj1 Is obj2. In einem solchen Fall können Sie den IsNot Operator verwenden.

So ermitteln Sie, ob zwei Objekte nicht identisch sind

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

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

    IsNot gibt zurück True , wenn die Objekte nicht auf dieselbe Klasseninstanz verweisen.

Beispiel

Im folgenden Beispiel werden Variablenpaare Object getestet, um festzustellen, ob sie auf dieselbe Klasseninstanz verweisen.

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))

Im vorherigen Beispiel wird die folgende Ausgabe angezeigt.

objA different from objB? True

objA identical to objC? True

Siehe auch