检查表达式结果的运行时类型是否与指定类型兼容。
语法
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,则TypeOf
Is
返回 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
. 它与 Integer
Double
..
refForm
变量的运行时类型为 Form. 它与Form它兼容,因为它是它的类型,因为ControlForm继承自Control,并且因为IComponentForm继承自Component,而IComponent实现。 但是, refForm
与 Label..