Практическое руководство. Определение наличия связи между двумя объектами (Visual Basic)

Чтобы определить связь между классами, из которых они создаются, можно сравнить два объекта. Метод IsInstanceOfTypeSystem.Type класса возвращается True , если указанный класс наследуется от текущего класса или если текущий тип является интерфейсом, поддерживаемым указанным классом.

Определение того, наследует ли один объект от класса или интерфейса другого объекта

  1. В объекте, который вы считаете, может быть базовым типом, вызовите GetType метод.

  2. В объекте System.Type , возвращаемом GetTypeметодом, вызывается IsInstanceOfType .

  3. В списке аргументов для IsInstanceOfType, укажите объект, который вы считаете, может быть производным типом.

    IsInstanceOfType возвращает, True если его тип аргумента наследуется от System.Type типа объекта.

Пример

В следующем примере определяется, представляет ли один объект класс, производный от класса другого объекта.

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

Обратите внимание на неожиданное размещение двух переменных объекта в вызове IsInstanceOfType. Предполагаемый базовый тип используется для создания System.Type класса, и предполагаемый производный тип передается в качестве аргумента IsInstanceOfType в метод.

См. также