TypeOf 运算符 (Visual Basic)
比较对象引用变量与数据类型。
result = TypeOf objectexpression Is typename
部件
result
已返回。一个 Boolean 值。objectexpression
必选。计算结果为引用类型的任何表达式。typename
必选。任何数据类型名称。
备注
TypeOf 运算符确定 objectexpression 的运行时类型是否与 typename 兼容。兼容性取决于 typename 的类型类别。下表阐释如何确定兼容性。
typename 的类型类别 |
兼容性标准 |
---|---|
类 |
objectexpression 属于类型 typename 或从 typename 继承 |
结构 |
objectexpression 属于 typename 类型 |
接口 |
objectexpression 实现 typename 或从实现 typename 的类继承 |
如果 objectexpression 的运行时类型满足兼容性标准,result 为 True。否则,result 为 False。
TypeOf 总是与 Is 关键字一起用于构造 TypeOf...Is 表达式。
示例
下面的示例使用 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 因为 Form 从 Control 继承而兼容,而与 IComponent 因为 Form 从 Component 继承而兼容,后者实现 IComponent。然而,refForm 与 Label 不兼容。