Anvisningar: Avgöra om två objekt är identiska (Visual Basic)
I Visual Basic anses två variabelreferenser vara identiska om deras pekare är desamma, dvs. om båda variablerna pekar på samma klassinstans i minnet. I ett Windows Forms-program kanske du till exempel vill göra en jämförelse för att avgöra om den aktuella instansen (Me
) är samma som en viss instans, till exempel Form2
.
Visual Basic innehåller två operatorer för att jämföra pekare. Is Operator returnerar True
om objekten är identiska och IsNot-operatorn returnerar True
om de inte är det.
Avgöra om två objekt är identiska
Så här avgör du om två objekt är identiska
Konfigurera ett
Boolean
uttryck för att testa de två objekten.I testuttrycket använder du operatorn
Is
med de två objekten som operander.Is
returnerarTrue
om objekten pekar på samma klassinstans.
Avgöra om två objekt inte är identiska
Ibland vill du utföra en åtgärd om de två objekten inte är identiska och det kan vara besvärligt att kombinera Not
och Is
, till exempel If Not obj1 Is obj2
. I så fall kan du använda operatorn IsNot
.
Så här avgör du om två objekt inte är identiska
Konfigurera ett
Boolean
uttryck för att testa de två objekten.I testuttrycket använder du operatorn
IsNot
med de två objekten som operander.IsNot
returnerarTrue
om objekten inte pekar på samma klassinstans.
Exempel
I följande exempel testas par med Object
variabler för att se om de pekar på samma klassinstans.
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))
I föregående exempel visas följande utdata.
objA different from objB? True
objA identical to objC? True