如何在 VB 中将 array(5,5) 的 array(1) 元素传递给函数

how to pass array(1) element of array(5,5) to a function in VB

提问人:Cinverse 提问时间:7/26/2023 最后编辑:Olivier Jacot-DescombesCinverse 更新时间:7/27/2023 访问量:47

问:

Private Sub fun1()
    Dim array(5,5) As Integer
    someinit(array)
    For I As Integer = 0 To 4
        Function (array(I))
    Next
End Sub

我想将数组 array(0)、array(1) 等传递给 Function()。但是出现错误:

索引数小于索引数组的维度数

帮助

vb.net visual-studio multidimensional-array basic

评论


答:

3赞 Olivier Jacot-Descombes 7/26/2023 #1

在 VB 中,有两种方法可以定义二维数组:

  1. 多维数组:Dim matrix(5, 5) As Integer
  2. 锯齿状数组,即数组的数组:Dim jagged As Integer()()

术语“锯齿状”来自每个子阵列可以具有不同长度的事实。创建数组时,只能指定第一个维度。必须为主数组的每个位置单独创建子数组。

Dim jagged As Integer()() = New Integer(5)() {}
jagged(0) = New Integer(5) {}
jagged(1) = New Integer(5) {}
...

只有在第二种情况下,您才能通过指定一个索引来选择一维数组。对于多维数组,必须始终指定两个索引,并且结果始终是一个“单元格”(在本例中为 an)。Integer

现在是一个一维数组,你可以传递给你的函数。jagged(i)


解决此问题的另一种方法是使用二维多维数组,并将整个数组加上行号传递给函数。然后,让函数遍历此行的列。


另请注意,在 VB 中,创建数组时指定最高索引,而不是数组的大小。即,是一个 6 x 6 矩阵,而不是 5 x 5 矩阵!Dim array(5,5) as Integer

另请参阅: