Comment : déterminer si deux objets sont identiques (Visual Basic)
Dans Visual Basic, deux références de variables sont considérées comme identiques si leurs pointeurs sont identiques, autrement dit, si les deux variables pointent vers la même instance de classe en mémoire. Par exemple, dans une application Windows Forms, vous pouvez effectuer une comparaison pour déterminer si l’instance actuelle (Me
) est identique à une instance particulière, telle que Form2
.
Visual Basic fournit deux opérateurs pour comparer les pointeurs. L' 'opérateur Is retourne True
si les objets sont identiques, et l’opérateur IsNot retourne True
si ce n’est pas le cas.
Déterminer si deux objets sont identiques
Pour déterminer si deux objets sont identiques
Configurez une
Boolean
expression pour tester les deux objets.Dans votre expression de test, utilisez l’
Is
opérateur avec les deux objets en tant qu’opérandes.Is
retourneTrue
si les objets pointent vers la même instance de classe.
Déterminer si deux objets ne sont pas identiques
Parfois, vous souhaitez effectuer une action si les deux objets ne sont pas identiques et qu’il peut être maladroit de combiner Not
et Is
, par exemple If Not obj1 Is obj2
. Dans ce cas, vous pouvez utiliser l’IsNot
opérateur .
Pour déterminer si deux objets ne sont pas identiques
Configurez une
Boolean
expression pour tester les deux objets.Dans votre expression de test, utilisez l’
IsNot
opérateur avec les deux objets en tant qu’opérandes.IsNot
retourneTrue
si les objets ne pointent pas vers la même instance de classe.
Exemple
L’exemple suivant teste les paires de Object
variables pour voir s’ils pointent vers la même instance de classe.
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))
L’exemple précédent affiche la sortie suivante.
objA different from objB? True
objA identical to objC? True