Gewusst wie: Bestimmen der Gleichheit zweier Objekte (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 z. B. einen Vergleich durchführen, um zu ermitteln, ob die aktuelle Instanz (Me
) mit einer bestimmten Instanz identisch ist, z. B. Form2
.
Visual Basic stellt zwei Operatoren zum Vergleichen von Zeigern bereit. Der Is-Operator gibt True
zurück, 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
Richten Sie einen
Boolean
-Ausdruck ein, um die beiden Objekte zu testen.Verwenden Sie in Ihrem Testausdruck den
Is
-Operator mit den beiden Objekten als Operanden.Is
gibtTrue
zurück, 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, um 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
Richten Sie einen
Boolean
-Ausdruck ein, um die beiden Objekte zu testen.Verwenden Sie in Ihrem Testausdruck den
IsNot
-Operator mit den beiden Objekten als Operanden.IsNot
gibtTrue
zurück, wenn die Objekte nicht auf dieselbe Klasseninstanz verweisen.
Beispiel
Im folgenden Beispiel werden Object
Variablenpaare 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