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 因为 FormControl 继承而兼容,而与 IComponent 因为 FormComponent 继承而兼容,后者实现 IComponent。然而,refForm 与 Label 不兼容。

请参见

参考

Is 运算符 (Visual Basic)

IsNot 运算符 (Visual Basic)

Visual Basic 中的运算符优先级

按功能列出的运算符 (Visual Basic)

概念

比较运算符 (Visual Basic)

Visual Basic 中的运算符和表达式