Condividi tramite


Procedura: determinare se due oggetti sono correlati

Aggiornamento: novembre 2007

È possibile confrontare due oggetti per determinare l'eventuale relazione tra le classi da cui vengono creati. Il metodo IsInstanceOfType della classe System.Type restituisce True se la classe specificata eredita da quella corrente o se il tipo corrente è un'interfaccia supportata dalla classe specificata.

Per determinare se un oggetto eredita dalla classe o dall'interfaccia di un altro oggetto

  1. Richiamare il metodo GetType sull'oggetto che può essere considerato del tipo base.

  2. Richiamare il metodo IsInstanceOfType sull'oggetto System.Type restituito da GetType,

  3. Specificare l'oggetto che può essere del tipo derivato nell'elenco degli argomenti di IsInstanceOfType.

    IsInstanceOfType restituisce True se il relativo tipo di argomento eredita dal tipo di oggetto System.Type.

Esempio

Nell'esempio che segue viene determinato se un oggetto rappresenta una classe derivata dalla classe di un altro oggetto.

Public Class baseClass
End Class
Public Class derivedClass : Inherits baseClass
End Class
Public Class testTheseClasses
    Public Sub seeIfRelated()
        Dim baseObj As Object = New baseClass()
        Dim derivedObj As Object = New derivedClass()
        Dim related As Boolean
        related = baseObj.GetType().IsInstanceOfType(derivedObj)
        MsgBox(CStr(related))
    End Sub
End Class

Si osservi la posizione imprevista delle due variabili oggetto nella chiamata a IsInstanceOfType. Il tipo base previsto viene utilizzato per generare la classe System.Type e il tipo derivato previsto viene passato come argomento al metodo IsInstanceOfType.

Vedere anche

Attività

Procedura: determinare se due oggetti sono identici

Concetti

Variabili oggetto in Visual Basic

Valori di variabili oggetto

Riferimenti

Tipo di dati Object

GetType

System.Type

IsInstanceOfType