如何:确定对象变量引用的类型
更新:2007 年 11 月
对象变量包含一个指针,它指向存储在其他位置的数据。该数据的类型可在运行时更改。任何时候,都可以使用 GetTypeCode 方法确定当前运行时类型,或者使用 TypeOf 运算符 (Visual Basic) 检查当前运行时类型是否与指定类型兼容。
确定对象变量当前引用的精确类型
在对象变量上,调用 GetType 方法检索 System.Type 对象。
Dim myObject As Object myObject.GetType()
在 System.Type 类上,调用共享方法 GetTypeCode 检索对象类型的 TypeCode 枚举值。
Dim myObject As Object Dim datTyp As Integer = Type.GetTypeCode(myObject.GetType()) MsgBox("myObject currently has type code " & CStr(datTyp))
确定对象变量的类型是否与指定类型兼容
组合使用 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。