Information.UBound(Array, Int32) 方法

定义

返回数组的指示维度的最高可用下标。

public static int UBound(Array Array, int Rank = 1);
static member UBound : Array * int -> int
Public Function UBound (Array As Array, Optional Rank As Integer = 1) As Integer

参数

Array
Array

必填。 任何数据类型的数组。 要在其中查找维度的最高可能下标的数组。

Rank
Int32

Optional. Integer。 要返回最高下标的维度。 第一个维度使用 1,对第二个维度使用 2,依此类。 如果 Rank 省略,则假定为 1。

返回

Integer。 指定维度的下标可以包含的最大值。 如果 Array 只有一个元素, UBound 则返回 0。 如果没有 Array 元素,例如,如果它是零长度字符串, UBound 则返回 -1。

例外

ArrayNothing

Rank 小于 1,或 Rank 大于排名 Array

示例

以下示例使用 UBound 函数来确定数组的指示维度的最高可用下标。

Dim highest, bigArray(10, 15, 20), littleArray(6) As Integer
highest = UBound(bigArray, 1)
highest = UBound(bigArray, 3)
highest = UBound(littleArray)
' The three calls to UBound return 10, 20, and 6 respectively.

注解

由于数组下标从 0 开始,因此维度的长度大于该维度的最高可用下标。

对于具有以下维度的数组, UBound 返回下表中的值:

Dim a(100, 5, 4) As Byte
调用 UBound 返回值
UBound(a, 1) 100
UBound(a, 2) 5
UBound(a, 3) 4

可用于 UBound 确定数组中的元素总数,但必须调整它返回的值,以考虑下标从 0 开始的事实。 以下示例计算上一示例中数组 a 的总大小:

Dim total As Integer
total = (UBound(A, 1) + 1) * (UBound(A, 2) + 1) * (UBound(A, 3) + 1)

计算的 total 值为 3030,即 101 * 6 * 5。

适用于

另请参阅