TypeOf 运算符 (Visual Basic)

检查表达式结果的运行时类型是否与指定类型兼容。

语法

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。 否则 resultFalse。 如果objectexpression为 null,则TypeOfIs返回 False...,并IsNot返回 。True

TypeOf始终与关键字一起使用Is来构造 TypeOf...Is表达式,或用于构造 TypeOf...IsNot表达式的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. 它与 IntegerDouble.. refForm变量的运行时类型为 Form. 它与Form它兼容,因为它是它的类型,因为ControlForm继承自Control,并且因为IComponentForm继承自Component,而IComponent实现。 但是, refFormLabel..

另请参阅