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


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

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

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

  1. У объекта, тип которого может быть базовым типом, вызовите метод GetType.

  2. У объекта Type, который был получен вызовом GetType, вызовите метод IsInstanceOfType.

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

    IsInstanceOfType возвращает True, если тип аргумента наследует от типа объекта 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 задаются две переменные объекта. Предполагаемый базовый тип используется для создания класса Type, а предполагаемый производный тип передается как аргумент в метод IsInstanceOfType.

См. также

Задачи

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

Ссылки

Тип данных Object

GetType

Type

IsInstanceOfType

Основные понятия

Объектные переменные в Visual Basic

Значения объектных переменных (Visual Basic)