如何在VB 6中检查对象的类型 - 除了'TypeName'之外是否有任何方法

Avi*_*ash 2 vb6

如何在VB 6中检查对象的类型 - 是否有除'TypeName'以外的任何方法,因为它不可能检查它&'TypeName'我期待QuichWatch窗口之类的东西.

Tom*_*lak 9

对于对象变量,请使用TypeOf ... Is:

If TypeOf VarName Is TypeName Then
  ''# ...
End If
Run Code Online (Sandbox Code Playgroud)

例如:

Dim fso As New Scripting.FileSystemObject

If TypeOf fso Is Scripting.FileSystemObject Then
  Debug.Print "Yay!"
End If
Run Code Online (Sandbox Code Playgroud)


one*_*hen 5

只是添加到@ 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
Run Code Online (Sandbox Code Playgroud)