我正在使用2D数组在网格中存储数据,所有数据都是1和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
答案 0 :(得分: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
答案 1 :(得分: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