检查表达式结果的运行时类型是否与指定类型兼容。
语法
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,则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实现。 但是, refForm 与 Label..