Udostępnij za pośrednictwem


Porady: określanie, czy dwa obiekty są powiązane (Visual Basic)

Można porównać dwa obiekty, aby określić relację, jeśli istnieje, między klasami, z których są tworzone. IsInstanceOfType Metoda System.Type klasy zwracaTrue, jeśli określona klasa dziedziczy z bieżącej klasy, lub jeśli bieżący typ jest interfejsem obsługiwanym przez określoną klasę.

Aby określić, czy jeden obiekt dziedziczy z klasy lub interfejsu innego obiektu

  1. Na obiekcie, który uważasz, że może być typu podstawowego, wywołaj metodę GetType .

  2. Na obiekcie zwróconym System.Type przez GetTypemetodę wywołaj metodę IsInstanceOfType .

  3. Na liście argumentów dla IsInstanceOfTypeparametru określ obiekt, który może być typu pochodnego.

    IsInstanceOfType Zwraca wartość True , jeśli typ argumentu System.Type dziedziczy z typu obiektu.

Przykład

Poniższy przykład określa, czy jeden obiekt reprezentuje klasę pochodzącą z klasy innego obiektu.

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

Zwróć uwagę na nieoczekiwane umieszczenie dwóch zmiennych obiektu w wywołaniu metody IsInstanceOfType. Rzekomy typ podstawowy jest używany do generowania System.Type klasy, a rzekomy typ pochodny jest przekazywany jako argument do IsInstanceOfType metody.

Zobacz też