Condividi tramite


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

È possibile confrontare due oggetti per determinare la relazione, se presente, tra le classi da cui vengono create. Il IsInstanceOfType metodo della System.Type classe restituisce True se la classe specificata eredita dalla classe 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. Sull'oggetto che si ritiene possa essere del tipo di base, richiamare il metodo GetType.

  2. Sull'oggetto System.Type restituito da GetType, richiamare il metodo IsInstanceOfType.

  3. Nell'elenco di argomenti per IsInstanceOfTypespecificare l'oggetto che si ritiene sia del tipo derivato.

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

Esempio

Nell'esempio seguente 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 noti la posizione imprevista delle due variabili oggetto nella chiamata a IsInstanceOfType. Il tipo di base previsto viene usato per generare la System.Type classe e il tipo derivato presunto viene passato come argomento al IsInstanceOfType metodo .

Vedere anche