一个关于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

数组是引用类型