Procedura: determinare se due oggetti sono identici (Visual Basic)

In Visual Basic due riferimenti variabili vengono considerati identici se i relativi puntatori sono uguali, ovvero se entrambe le variabili puntano alla stessa istanza di classe nella memoria. In un'applicazione Windows Form è ad esempio possibile eseguire un confronto per determinare se l'istanza corrente (Me) corrisponde a un'istanza specifica, ad esempio Form2.

In Visual Basic sono disponibili due operatori che consentono di confrontare i puntatori. L'Operatore Is (Visual Basic) restituisce True se gli oggetti sono identici, mentre l'Operatore IsNot (Visual Basic) restituisce True se non lo sono.

Determinazione dell'identicità di due oggetti

Per determinare se due oggetti sono identici

  1. Impostare un'espressione Boolean per eseguire la verifica dei due oggetti.

  2. Nell'espressione di verifica utilizzare l'operatore Is con i due oggetti come operandi.

    Is restituisce True se gli oggetti puntano alla stessa istanza di classe.

Determinazione della non identicità di due oggetti

A volte si desidera eseguire un'azione se i due oggetti non sono identici, ma può essere difficile combinare Not e Is, ad esempio If Not obj1 Is obj2. In casi di questo tipo è possibile utilizzare l'operatore IsNot.

Per determinare se due oggetti non sono identici

  1. Impostare un'espressione Boolean per eseguire la verifica dei due oggetti.

  2. Nell'espressione di verifica utilizzare l'operatore IsNot con i due oggetti come operandi.

    IsNot restituisce True se gli oggetti non puntano alla stessa istanza di classe.

Esempio

Nell'esempio riportato di seguito viene eseguita la verifica di coppie di variabili Object per stabilire se puntano alla stessa istanza di 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))

Di seguito è riportato l'output dell'esempio precedente.

objA different from objB? True

objA identical to objC? True

Vedere anche

Attività

Procedura: determinare se due oggetti sono correlati (Visual Basic)

Riferimenti

Tipo di dati Object

Operatore Is (Visual Basic)

Operatore IsNot (Visual Basic)

Concetti

Variabili oggetto in Visual Basic

Valori di variabili oggetto (Visual Basic)

Me, My, MyBase e MyClass in Visual Basic