Поделиться через


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

Чтобы определить связь между классами, из которых они создаются, можно сравнить два объекта. Метод IsInstanceOfType класса System.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 в метод.

См. также