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

Проверяет, совместим ли тип среды выполнения результата выражения с указанным типом.Checks whether the runtime type of an expression's result is type-compatible with the specified type.

СинтаксисSyntax

result = TypeOf objectexpression Is typename  
result = TypeOf objectexpression IsNot typename  

ЧастиParts

result
Возвращено.Returned. Значение Boolean.A Boolean value.

objectexpression
Обязательный.Required. Любое выражение, результатом которого является тип ссылки.Any expression that evaluates to a reference type.

typename
Обязательный.Required. Любое имя типа данных.Any data type name.

ПримечанияRemarks

Оператор TypeOf определяет, совместим ли тип времени выполнения objectexpression с typename.The TypeOf operator determines whether the run-time type of objectexpression is compatible with typename. Совместимость зависит от категории типа typename.The compatibility depends on the type category of typename. В следующей таблице показано, как определяется совместимость.The following table shows how compatibility is determined.

Категория типа typenameType category of typename Критерий совместимостиCompatibility criterion
КлассClass objectexpression типа typename или наследует от typenameobjectexpression is of type typename or inherits from typename
СтруктураStructure objectexpression типа typenameobjectexpression is of type typename
ИнтерфейсInterface objectexpression реализует typename или наследует от класса, реализующего typenameobjectexpression implements typename or inherits from a class that implements typename

Если тип времени выполнения objectexpression удовлетворяет критерию совместимости, result является True.If the run-time type of objectexpression satisfies the compatibility criterion, result is True. В противном случае result является False.Otherwise, result is False. Если objectexpression имеет значение null, то TypeOf...Is возвращает False, а ...IsNot возвращает True.If objectexpression is null, then TypeOf...Is returns False, and ...IsNot returns True.

TypeOf всегда используется с ключевым словом Is для создания выражения TypeOf...Is или с ключевым словом IsNot для создания выражения TypeOf...IsNot.TypeOf is always used with the Is keyword to construct a TypeOf...Is expression, or with the IsNot keyword to construct a TypeOf...IsNot expression.

ПримерExample

В следующем примере выражение TypeOf...Is используется для проверки на совместимость типов двух переменных ссылок на объекты с различными типами данных.The following example uses TypeOf...Is expressions to test the type compatibility of two object reference variables with various data types.

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.The variable refInteger has a run-time type of Integer. Она совместима с Integer, но не с Double.It is compatible with Integer but not with Double. Переменная refForm имеет тип времени выполнения Form.The variable refForm has a run-time type of Form. Она совместима с Form, так как это ее тип, с Control, так как Form наследует от Control, и с IComponent, так как Form наследует от Component, который реализует IComponent.It is compatible with Form because that is its type, with Control because Form inherits from Control, and with IComponent because Form inherits from Component, which implements IComponent. Однако refForm несовместима с Label.However, refForm is not compatible with Label.

См. такжеSee also