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

可选。 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 开始,因此维度的长度大于该维度的最高可用下标的 1。

对于具有以下维度的数组, 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。

适用于

另请参阅