如何:确定对象变量引用的类型 (Visual Basic)

对象变量包含指向存储在其他位置的数据的指针。 该数据的类型在运行时可能会更改。 随时都可以使用 GetTypeCode 方法来确定当前的运行时类型,或使用 TypeOf 运算符来确定当前的运行时类型是否与指定的类型兼容。

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

  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))
    

    可以根据感兴趣的任何枚举成员(例如 Double)对 TypeCode 枚举值进行测试。

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

  • TypeOf 运算符与 Is 运算符结合使用,以使用 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 运算符

编译代码

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

另请参阅