Partager via


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

  1. Configurez une Booleanexpression pour tester les deux objets.

  2. Dans votre expression de test, utilisez l’Isopérateur 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 qu’il peut être maladroit de combiner Not et Is, par exemple If Not obj1 Is obj2. Dans ce cas, vous pouvez utiliser l’IsNotopérateur .

Pour déterminer si deux objets ne sont pas identiques

  1. Configurez une Booleanexpression pour tester les deux objets.

  2. Dans votre expression de test, utilisez l’IsNotopérateur 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 Objectvariables 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