一个关于VB.net数组赋值的有关问题
一个关于VB.net数组赋值的问题!
各位:请教个问题,代码如下:
Dim p1(0 To 2) As Double
p1(0) = 20
p1(1) = 20
p1(2) = 0
Dim p2(0 To 2) As Double
p2 = p1
p2(0) = p2(0) + 50
p2(1) = p2(1) + 50
代码执行完毕,p1和p2应该是不行等的,可是结果是相等的。都是(70,70,0)。
如果p1直接带进去,改成以下代码:
Dim p1(0 To 2) As Double
p1(0) = 20
p1(1) = 20
p1(2) = 0
Dim p2(0 To 2) As Double
p2(0) = p1(0) + 50
p2(1) = p1(1) + 50
结构就对了,p1(20,20,0);p2(70,70,0)。
哪位给解个惑啊?
------解决方案--------------------
数组是引用类型的
------解决方案--------------------
p2 = p1执行后p2和p1指向相同的数组对象.
------解决方案--------------------
p2 = p1 指向同一个数组实例了
值类型和引用类型的区别
C#之理解值类型和引用类型
http://www.cnblogs.com/lynnlin/archive/2008/11/18/1335741.html
数组是引用类型
各位:请教个问题,代码如下:
Dim p1(0 To 2) As Double
p1(0) = 20
p1(1) = 20
p1(2) = 0
Dim p2(0 To 2) As Double
p2 = p1
p2(0) = p2(0) + 50
p2(1) = p2(1) + 50
代码执行完毕,p1和p2应该是不行等的,可是结果是相等的。都是(70,70,0)。
如果p1直接带进去,改成以下代码:
Dim p1(0 To 2) As Double
p1(0) = 20
p1(1) = 20
p1(2) = 0
Dim p2(0 To 2) As Double
p2(0) = p1(0) + 50
p2(1) = p1(1) + 50
结构就对了,p1(20,20,0);p2(70,70,0)。
哪位给解个惑啊?
------解决方案--------------------
数组是引用类型的
------解决方案--------------------
p2 = p1执行后p2和p1指向相同的数组对象.
------解决方案--------------------
p2 = p1 指向同一个数组实例了
值类型和引用类型的区别
C#之理解值类型和引用类型
http://www.cnblogs.com/lynnlin/archive/2008/11/18/1335741.html
数组是引用类型