【发布时间】:2019-06-25 07:02:13
【问题描述】:
我的理解是数组的浅拷贝复制数组变量,这样你就有两个指针指向堆上的同一个内存位置。但是按照这个逻辑,下面这段代码应该可以工作,但不能:
Sub Main()
Dim row As Long() = {1, 2, 3, 4}
ChangeRow(row.Clone)
Console.WriteLine(row(0))
End Sub
Sub ChangeRow(ByVal array As Long())
array(0) = 0
End Sub
Clone 方法应该是做一个浅拷贝。这意味着您将指向原始数组的指针作为参数传递。到目前为止,我在该主题上阅读的所有内容都指向这段代码有效,但事实并非如此。谁能解释一下?
有问题的方言是 VB.Net
【问题讨论】:
-
请说明这是什么方言,VB.NET、VB6、VBA等
-
方言是VB.Net
-
所以最重要的标签不见了……
-
@trincot 抱歉,这一天很长
标签: arrays vb.net parameters parameter-passing shallow-copy