Procedure: bepalen of twee objecten identiek zijn (Visual Basic)
In Visual Basic worden twee variabeleverwijzingen als identiek beschouwd als hun aanwijzers hetzelfde zijn, dat wil gezegd, als beide variabelen verwijzen naar hetzelfde klasse-exemplaar in het geheugen. In een Windows Forms-toepassing wilt u bijvoorbeeld een vergelijking maken om te bepalen of het huidige exemplaar (Me
) hetzelfde is als een bepaald exemplaar, zoals Form2
.
Visual Basic biedt twee operators voor het vergelijken van aanwijzers. De operator Is retourneert als de objecten identiek zijn en de IsNot-operator retourneert True
True
als dat niet het is.
Bepalen of twee objecten identiek zijn
Bepalen of twee objecten identiek zijn
Stel een
Boolean
expressie in om de twee objecten te testen.Gebruik in de testexpressie de
Is
operator met de twee objecten als operanden.Is
retourneertTrue
als de objecten verwijzen naar hetzelfde klasse-exemplaar.
Bepalen of twee objecten niet identiek zijn
Soms wilt u een actie uitvoeren als de twee objecten niet identiek zijn en het kan lastig zijn om te combineren Not
en Is
, bijvoorbeeld If Not obj1 Is obj2
. In dat geval kunt u de IsNot
operator gebruiken.
Bepalen of twee objecten niet identiek zijn
Stel een
Boolean
expressie in om de twee objecten te testen.Gebruik in de testexpressie de
IsNot
operator met de twee objecten als operanden.IsNot
retourneertTrue
als de objecten niet verwijzen naar hetzelfde klasse-exemplaar.
Opmerking
In het volgende voorbeeld worden paren van Object
variabelen getest om te zien of ze verwijzen naar hetzelfde klasse-exemplaar.
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))
In het voorgaande voorbeeld wordt de volgende uitvoer weergegeven.
objA different from objB? True
objA identical to objC? True