将无尺寸数组传递给 VB6 的 Ubound 函数会导致错误,因此我想在尝试检查其上限之前检查它是否已确定尺寸。我该怎么做呢?
要在尝试使用该函数之前检查数组是否已在 VB6 中指定尺寸UBound,可以将该IsArray函数与错误处理结合使用。 VB6 没有提供直接方法来检查数组是否已标注尺寸,但您可以通过处理UBound传递未标注尺寸的数组时引发的错误来使用解决方法。
UBound
IsArray
这是封装此逻辑的函数:
Function IsArrayDimensioned(arr As Variant) As Boolean On Error Resume Next IsArrayDimensioned = IsArray(arr) And (Not IsError(LBound(arr))) On Error GoTo 0 End Function
arr
LBound
On Error Resume Next
IsError(LBound(arr))
True
该函数的使用方法如下IsArrayDimensioned:
IsArrayDimensioned
Private Sub TestArrayDimensioning() Dim undimensionedArray() As String Dim dimensionedArray(1 To 10) As String If IsArrayDimensioned(undimensionedArray) Then MsgBox "The undimensionedArray is dimensioned." Else MsgBox "The undimensionedArray is not dimensioned." End If If IsArrayDimensioned(dimensionedArray) Then MsgBox "The dimensionedArray is dimensioned." Else MsgBox "The dimensionedArray is not dimensioned." End If End Sub
undimensionedArray
dimensionedArray
通过使用此函数,您可以在调用UBound或执行需要对数组进行尺寸标注的其他操作之前安全地确定数组是否已进行尺寸标注。这有助于防止运行时错误并确保代码更健壮。