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


Оператор TypeOf (Visual Basic)

Сравнивает переменную объектной ссылки с типом данных.

result = TypeOf objectexpression Is typename

Части

  • result
    Возвращенное.Значение Boolean.

  • objectexpression
    Обязательный.Любое выражение, значение которого является ссылочным типом.

  • typename
    Обязательный.Любое имя типа данных.

Заметки

Оператор TypeOf определяет, совместим ли тип времени выполнения выражения objectexpression с typename.Совместимость зависит от категории типа typename.В следующей таблице показано, как определяется совместимость.

Введите категорию typename

Критерий совместимости

Класс

objectexpression имеет тип typename или наследует от typename

Структура

objectexpression имеет тип данных typename

Интерфейс

objectexpression реализует typename или наследует от класса, реализующего typename

Если тип времени выполнения выражения objectexpression удовлетворяет условию совместимости, result является True.В противном случае result является False.

TypeOf всегда используется с ключевым словом Is для построения выражения TypeOf... Is.

Пример

В следующем примере выражения TypeOf... Is используются для проверки на совместимость типов двух переменных объектных ссылок с различными типами данных.

Dim refInteger As Object = 2
MsgBox("TypeOf Object[Integer] Is Integer? " & TypeOf refInteger Is Integer)
MsgBox("TypeOf Object[Integer] Is Double? " & TypeOf refInteger Is Double)
Dim refForm As Object = New System.Windows.Forms.Form
MsgBox("TypeOf Object[Form] Is Form? " & TypeOf refForm Is System.Windows.Forms.Form)
MsgBox("TypeOf Object[Form] Is Label? " & TypeOf refForm Is System.Windows.Forms.Label)
MsgBox("TypeOf Object[Form] Is Control? " & TypeOf refForm Is System.Windows.Forms.Control)
MsgBox("TypeOf Object[Form] Is IComponent? " & TypeOf refForm Is System.ComponentModel.IComponent)

Переменная refInteger имеет тип времени выполнения Integer.Он совместим с Integer, но не с Double.Переменная refForm имеет тип времени выполнения Form.Он совместим с Form, поскольку это его тип, с Control, поскольку Form наследует от Control, и с IComponent, поскольку Form наследует от Component, который реализует IComponent.Однако refForm не совместим с Label.

См. также

Ссылки

Оператор Is (Visual Basic)

Оператор IsNot (Visual Basic)

Порядок применения операторов в Visual Basic

Список операторов, сгруппированных по функциональному назначению (Visual Basic)

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

Операторы сравнения в Visual Basic

Операторы и выражения в Visual Basic