Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

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.

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.

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.

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

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ