如何:确定对象变量引用的类型

更新:2007 年 11 月

对象变量包含一个指针,它指向存储在其他位置的数据。该数据的类型可在运行时更改。任何时候,都可以使用 GetTypeCode 方法确定当前运行时类型,或者使用 TypeOf 运算符 (Visual Basic) 检查当前运行时类型是否与指定类型兼容。

确定对象变量当前引用的精确类型

  1. 在对象变量上,调用 GetType 方法检索 System.Type 对象。

    Dim myObject As Object
    myObject.GetType()
    
  2. System.Type 类上,调用共享方法 GetTypeCode 检索对象类型的 TypeCode 枚举值。

    Dim myObject As Object
    Dim datTyp As Integer = Type.GetTypeCode(myObject.GetType())
    MsgBox("myObject currently has type code " & CStr(datTyp))
    

    对任何感兴趣的枚举成员都可以测试 TypeCode 枚举值,例如 Double

确定对象变量的类型是否与指定类型兼容

  • 组合使用 TypeOf 运算符和 Is 运算符 (Visual Basic),使用 TypeOf...Is 表达式测试对象。

    If TypeOf objA Is System.Windows.Forms.Control Then
        MsgBox("objA is compatible with the Control class")
    End If
    

    如果对象的运行时类型和指定类型兼容,则 TypeOf...Is 表达式返回 True。

    兼容性标准取决于指定类型是类、结构还是接口。通常,如果对象的类型与指定类型相同,或者,继承或实现了指定类型,则类型是兼容的。有关更多信息,请参见 TypeOf 运算符 (Visual Basic)

编译代码

注意,指定类型不能是变量或表达式。它必须是已定义类型(例如,类、结构或接口)的名称。包括内部类型,例如 Integer 和 String。

请参见

概念

Visual Basic 中的对象变量

对象变量值

参考

Object 数据类型

GetType

System.Type

GetTypeCode

TypeCode