Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Проверяет, совместим ли тип среды выполнения результата выражения с указанным типом.
Синтаксис
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, тоIs
TypeOf
False
возвращается и ...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.