请教VB.NET中用ByVal做参数传递的问题
初学VB.NET, 用ByVal做参数传递, 但是变量值还是被修改了, 不知道是为啥. 下面是代码, 两个Debug.Print, 结果是不一样的, 第一次是1, 第二次是0, 麻烦大家帮我看一下哪里不对, 谢谢.
Module Module1
Public Structure TTT
Public x As Integer
Public y As Integer
Public z As Integer
End Structure
Sub Main()
Dim mydata(1) As TTT
For i = 0 To 1
mydata(i).x = 1
mydata(i).y = 2
mydata(i).z = 3
Next
Debug.Print(mydata(0).x)
Dim new_data() As TTT = InitialTTT(mydata)
Debug.Print(mydata(0).x)
End Sub
Public Function InitialTTT(ByVal tmp() As TTT)
Dim temp As TTT
temp.x = 0
temp.y = 0
temp.z = 0
For i = 0 To UBound(tmp)
tmp(i) = temp
Next
Return tmp
End Function
End Module