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 przez System.Type przy użyciu GetType, wywołaj metodę IsInstanceOfType.

  3. Na liście argumentów dla IsInstanceOfType określ obiekt, który myślisz, że 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 także