gpt4 book ai didi

arrays - VB.NET - For Each 循环不改变类数组中的元素

转载 作者:行者123 更新时间:2023-12-01 10:59:28 24 4
gpt4 key购买 nike

我正在使用类数组;该类非常简单,只包含一个元素。该类声明如下:

Class Cell
Public Info As Int16
End Class

数组:

Dim Maze(11, 15) As Cell

我想使用一个简单的 sub 将每个元素的 .Info 变量设置为 15,但我意识到我必须先创建元素。我尝试如下使用 For Each 循环,但它没有用,当循环完成时,所有内容仍然设置为空:

For Each e As Cell In Maze
If e Is Nothing Then
e = New Cell
End If
Next

我不关心正确的解决方案:我使用了常规的 For 循环,这完成了我想完成的一切...

For a = 0 To Maze.GetUpperBound(0)
For b = 0 To Maze.GetUpperBound(1)
Maze(a, b) = New Cell
Maze(a, b).Info = Maze(a, b).Info Or 15
Next
Next

...但我想知道为什么 For Each 循环一开始就不起作用,因为我确信我在这里遗漏了一些基本原则。

最佳答案

For Each 循环不起作用的原因是因为在 For Each 构造中,局部变量(在您的例子中是 e)不是引用,而是副本;因此,您的 New Cell 对您的 Cell 数组没有任何影响。

关于arrays - VB.NET - For Each 循环不改变类数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17752965/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com