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 に答える