Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Проверяет, совместим ли тип среды выполнения результата выражения с указанным типом.
Синтаксис
result = TypeOf objectexpression Is typename
result = TypeOf objectexpression IsNot typename
Комплектующие
result
Возвращаемый. Некоторое значение Boolean.
objectexpression
Обязательное. Любое выражение, которое вычисляет ссылочный тип.
typename
Обязательное. Любое имя типа данных.
Замечания
Оператор TypeOf определяет, совместим ли тип objectexpression времени выполнения с typename. Совместимость зависит от категории typenameтипов. В следующей таблице показано, как определяется совместимость.
Категория типов typename |
Критерий совместимости |
|---|---|
| Класс |
objectexpression имеет тип typename или наследует от typename |
| Структура |
objectexpression типа typename |
| Интерфейс |
objectexpression
typename реализует или наследует класс, реализующийtypename |
Если тип objectexpression времени выполнения соответствует критерию совместимости, result имеет значение True. В противном случае result это False. Если objectexpression значение равно null, тоIsTypeOfFalseвозвращается и ...IsNot возвращается.True
TypeOf всегда используется с Is ключевым словом для создания TypeOfвыражения ...Is или ключевого IsNot слова для создания TypeOfвыражения ...IsNot .
Пример
В следующем примере используются 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 тем, что наследуется от Control, и IComponent с тем, что FormForm наследует от Component, который реализуетIComponent. Тем не менее, refForm несовместим с Label.