Partager via


Guide pratique pour 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 s’ils ne le sont pas.

Déterminer si deux objets sont identiques

Pour déterminer si deux objets sont identiques

  1. Configurez une Boolean expression pour tester les deux objets.

  2. Dans votre expression de test, utilisez l’opérateur Is avec les deux objets en tant qu’opérandes.

    Is retourne True 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 il peut être maladroit de combiner Not et Is, par exemple If Not obj1 Is obj2. Dans ce cas, vous pouvez utiliser l’opérateur IsNot .

Pour déterminer si deux objets ne sont pas identiques

  1. Configurez une Boolean expression pour tester les deux objets.

  2. Dans votre expression de test, utilisez l’opérateur IsNot avec les deux objets en tant qu’opérandes.

    IsNot retourne True 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

Voir aussi