我有两个同一个类的对象,它们的属性是双精度数组(Double()),我想做以下几点:
Obj1.arr_property = Obj2.arr_property
以上是按价值还是按参考分配?如果通过引用,如何通过值来改变它?
答案 0 :(得分:3)
您使用Set
分配的所有内容仅复制对新变量的引用,而不是数据。
您不使用Set
,因此会复制数组的所有值,而不仅仅是对数组的引用。
在这种情况下,即使您愿意,也实际上无法使用Set
。 Set
仅允许使用对象。数组不是对象,因此只能按照您的方式进行分配。
如果您不使用赋值运算符=
,但将值传递给函数,则情况会有所不同。但这是另一个问题。
答案 1 :(得分:0)
这会将值而不是引用复制到Obj1.arr_property
。
要记住的一件重要事情是目标数组必须是动态/可调整大小的。这意味着它需要以这种形式Dim arr_property() As Double
声明,而不是Dim arr_property(10) As Double
。否则,您将收到Can't assign to array错误。