通过函数传递二维数组

Win*_*Too 4 vb.net

我有通过函数传递二维数组的有趣情况.
在表单的级别范围声明数组:
我尝试从VB6重写我的代码的一部分,我有可行的示例.

Dim myArray(,) As Double
Run Code Online (Sandbox Code Playgroud)

然后我得到一个sub,其中数组被重新编号并根据数据填充,类似这样的符号情况:

Public Sub mySub(ByVal myArray(,) As Double)

    Dim temparray() As Double = {3, 5, 7, 9}
    For a As Double = 0 temparray.length - 1
         ReDim Preserve myarray(2, temparray(a))
    Next a

    myArray(1, 5) = 3.14
    ... etc...
End Sub
Run Code Online (Sandbox Code Playgroud)

最后,我想填充和读取其他子数组中的数据:

mySub(myArray)
Debug.Print(myArray(1, 5))
Run Code Online (Sandbox Code Playgroud)

在这里我收到错误消息:

你调用的对象是空的.

mySub中的数据已正确填充但我在调用sub时看不到这些数据.
我做错了什么,如何让这个场景有效?

Sys*_*gon 8

你可以通过这样做来解决它:

Public Sub mySub(ByRef myArray(,) As Double)
    '...
End Sub
Run Code Online (Sandbox Code Playgroud)

您需要引用变量才能在Sub之外进行更改.