如何在VB6中检查对象的类型-除了';TypeName';

如何在VB6中检查对象的类型-除了';TypeName';,vb6,Vb6,如何在VB 6中检查对象的类型-除了“TypeName”之外,还有其他方法吗?因为用“TypeName”检查对象是不可行的。我希望使用类似QuichWatch窗口的方法。对于对象变量,请使用TypeOf。。。是: If TypeOf VarName Is TypeName Then ''# ... End If 例如: Dim fso As New Scripting.FileSystemObject If TypeOf fso Is Scripting.FileSystemObject

如何在VB 6中检查对象的类型-除了“TypeName”之外,还有其他方法吗?因为用“TypeName”检查对象是不可行的。我希望使用类似QuichWatch窗口的方法。

对于对象变量,请使用
TypeOf。。。是

If TypeOf VarName Is TypeName Then
  ''# ...
End If
例如:

Dim fso As New Scripting.FileSystemObject

If TypeOf fso Is Scripting.FileSystemObject Then
  Debug.Print "Yay!"
End If

再加上@Tomalak的答案。。。如果对象变量尚未实例化,则使用TypeOf进行测试将导致运行时错误。还要注意,类可以实现接口,例如

Dim fs As Scripting.FileSystemObject

On Error Goto Err_Handler

If TypeOf fs Is Scripting.FileSystemObject Then
  Debug.Print "[Won't get here]"
End If

Err_Handler:

If Err.Number <> 0 Then
  Debug.Print "Oops, error when fs Is Nothing"
End If

On Error Resume Next

Set fs = New Scripting.FileSystemObject

If TypeOf fs Is Scripting.FileSystemObject Then
  Debug.Print "Is a FileSystemObject"
End If

If TypeOf fs Is IFileSystem Then
  Debug.Print "Implements IFileSystem "
End If
Dim fs As Scripting.FileSystemObject
关于错误转到错误处理程序
如果fs的类型为Scripting.FileSystemObject,则
Debug.Print“[无法到达此处]”
如果结束
错误处理程序:
如果错误号为0,则
Debug.Print“Oops,fs为空时出错”
如果结束
出错时继续下一步
Set fs=New Scripting.FileSystemObject
如果fs的类型为Scripting.FileSystemObject,则
“是一个文件系统对象”
如果结束
如果fs的类型为IFileSystem,则
Debug.Print“实现IFileSystem”
如果结束
试试这个

dim obj as object
for each obj in me
   debug.print TypeName(obj)
next

谢谢,但一定要检查对象的类型,我们必须修改现有的代码,有没有像移动光标或移动光标这样的方法,或者像quick watch这样的方法,我可以看到它的类型