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作为字符串。我知道从函数中获取数组的过程应该与从官方网站上的示例中获取一维数组的过程类似,但我脑子里乱七八糟。再次感谢!可能是,这是我的问题,但它应该是字符串类型的数组,而不仅仅是数组,它将不起作用。可能是,这是我的问题,但它应该是字符串类型的数组,而不仅仅是数组,它将不起作用。