Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
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
Configurez une
Booleanexpression pour tester les deux objets.Dans votre expression de test, utilisez l’opérateur
Isavec les deux objets en tant qu’opérandes.IsretourneTruesi 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
Configurez une
Booleanexpression pour tester les deux objets.Dans votre expression de test, utilisez l’opérateur
IsNotavec les deux objets en tant qu’opérandes.IsNotretourneTruesi 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