0

可能重复:
如何确定数组是否在 VB6 中初始化?
如何在 VB6 中检查对象是否为 Nothing?

在函数返回动态数组作为结果的情况下,动态数组可能未初始化(例如,执行错误)。是否可以检查这种情况?

函数 IsNothing() 不起作用,并且 UBound() 在这种情况下会产生错误。

例如:

Function find(results() As String)

    [Definition here...]

End Function

[...]

Dim results() As String
find(results)
If UBound(results) > 0 Then '<-- This line will fail when results was not defined

[...]

提前致谢!

4

1 回答 1

1

我遇到了同样的问题,无法找到一种干净的方法来做到这一点。我最终创建了自己的函数来实现一个用错误处理程序包装的 Ubound。如果失败,我返回-1。

Private Function custom_UBound(ByRef ToTest() As String)
    On Error GoTo errHandler

    custUBound = UBound(ToTest)

    Exit Function
errHandler:
    custUBound = -1
End Function
于 2012-05-07T16:45:01.797 回答