Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net VB如何从函数返回和接收三维数组_Vb.net_Multidimensional Array - Fatal编程技术网

Vb.net VB如何从函数返回和接收三维数组

Vb.net VB如何从函数返回和接收三维数组,vb.net,multidimensional-array,Vb.net,Multidimensional Array,我遇到了一个如何使用多维数组的问题。我有一个功能: Public Function findCheckDigit(ByVal text As String) As String(,,) Dim msgLen As Integer = text.Length Dim value(msgLen + 2, 1, 1) As String ... ... ... Return value End Function 下面我尝试调用此函数: Private

我遇到了一个如何使用多维数组的问题。我有一个功能:

Public Function findCheckDigit(ByVal text As String) As String(,,)
    Dim msgLen As Integer = text.Length
    Dim value(msgLen + 2, 1, 1) As String
    ...
    ...
    ...
    Return value
End Function
下面我尝试调用此函数:

Private Sub bGenerate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bGenerate.Click
        Dim value(tbText.Text.Length + 2, 1, 1) As Array

        value(tbText.Text.Length + 2, 1, 1) = findCheckDigit(tbText.Text)  <--- Here is a problem

        MsgBox(value(0, 1, 0))  ' Return empty in any position
    End Sub

我敢肯定问题出在这里,但如何实现对另一个同样大小的三维数组的函数调用?

我不确定我是否正确理解了你的问题。这是我的建议

在findCheckDigit函数中,将数组声明为字符串

尺寸值Glen+2,1,1作为字符串

但是在单击侦听器中,您创建了一个数组

尺寸值tbtext.Text.Length+2,1,1作为数组


我不确定我是否正确理解了你的问题。这是我的建议

在findCheckDigit函数中,将数组声明为字符串

尺寸值Glen+2,1,1作为字符串

但是在单击侦听器中,您创建了一个数组

尺寸值tbtext.Text.Length+2,1,1作为数组

当你这样做的时候

Dim value(msgLen + 2, 1, 1) As String
您正在尝试访问不存在的数组元素。假设该数组有5个元素,每个元素包含2d数组。格伦小姐5岁。现在,您需要访问值中的八个元素,因为您说的是msgLen+2。这是行不通的,因为只有5个元素

Dim value(msgLen + 2, 1, 1) As String

您正在尝试访问不存在的数组元素。假设该数组有5个元素,每个元素包含2d数组。格伦小姐5岁。现在,您需要访问值中的八个元素,因为您说的是msgLen+2。这不起作用,因为只有5个元素。

您正在创建一个空数组,并且没有将任何数据放入其中。您不需要在接收数组上创建边界,执行类似的操作,并确保数组类型与Luke94前面提到的相同

Public Function findCheckDigit(ByVal text As String) As String(,,)
    Dim msgLen As Integer = text.Length
    Dim value(msgLen + 2, 1, 1) As String
    value(0, 0, 0) = "Hello"

    Return value
End Function

Private Sub bGenerate_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim value(,,) As String

    value = findCheckDigit(tbText.Text) 

    MsgBox(value(0, 0, 0))  

End Sub

您正在创建一个空数组,并且没有将任何数据放入其中。您不需要在接收数组上创建边界,执行类似的操作,并确保数组类型与Luke94前面提到的相同

Public Function findCheckDigit(ByVal text As String) As String(,,)
    Dim msgLen As Integer = text.Length
    Dim value(msgLen + 2, 1, 1) As String
    value(0, 0, 0) = "Hello"

    Return value
End Function

Private Sub bGenerate_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim value(,,) As String

    value = findCheckDigit(tbText.Text) 

    MsgBox(value(0, 0, 0))  

End Sub

你犯了什么错误!你犯了什么错误!嗯,谢谢,这很有效。这有点奇怪,我自己似乎也尝试过这种方法,但没有成功,也许我忘了什么,也就是说,我把valuemsgLen+2,1,1作为数组,而不是valuemsgLen+2,1,1作为字符串。我知道从函数中获取数组的过程应该与从官方网站上的示例中获取一维数组的过程类似,但我脑子里乱七八糟。再次感谢!嗯,谢谢,这很有效。这有点奇怪,我自己似乎也尝试过这种方法,但没有成功,也许我忘了什么,也就是说,我把valuemsgLen+2,1,1作为数组,而不是valuemsgLen+2,1,1作为字符串。我知道从函数中获取数组的过程应该与从官方网站上的示例中获取一维数组的过程类似,但我脑子里乱七八糟。再次感谢!可能是,这是我的问题,但它应该是字符串类型的数组,而不仅仅是数组,它将不起作用。可能是,这是我的问题,但它应该是字符串类型的数组,而不仅仅是数组,它将不起作用。