0

我使用二维数组将数据存储在网格中,所有数据都是一和零。默认情况下,数组全为零。当我尝试使用variable(y)(x) = 1其中 x 和 y 是范围内的整数来修改数组中的值时,它会将整个列中的值更改为 1,而不仅仅是单个单元格。

例如:

Public cells(19)() As Integer

'Code to  populate it with zeros goes here

Public Sub modifyCells(ByVal x As Integer, ByVal y As Integer)
    cells(x)(y) = 1
End Sub

每当我打电话时modifyCells(0,0),我都会得到每个子数组的值,如下所示:

1,0,0,0,0,0,0,0,0,0

而我希望这仅发生在第一个子数组(即单元格(0)(0)= 1 处的值且仅该值)。

我该如何管理?提前致谢。

(如果有任何区别,则用于填充数组的代码如下)

Public Sub clear()
    Dim A1() As Integer = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
    For y = 0 To 19
        cells(y) = A1
    Next
End Sub
4

2 回答 2

1

你的问题是你用完全相同的数组填充每一行。您需要将局部变量定义移动到循环中:

Public Sub clear()
    For y = 0 To 19
        Dim A1() As Integer = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
        cells(y) = A1
    Next
End Sub
于 2011-01-03T17:09:20.533 回答
0

基本上是在cells.

试试这个:

Public Sub clear()
    For y = 0 To 19         
        cells(y) = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}     
    Next 
End Sub 
于 2011-01-03T17:11:26.413 回答