[请问]structure自定义数据类型怎么按值复制
[请教]structure自定义数据类型如何按值复制?VB.NET codestructure myDATAdim x() as doubleend structure
[请教]structure自定义数据类型如何按值复制?
VB.NET codestructure myDATA dim x() as doubleend structuresub test() dim data1 as myDATA dim data2 as myDATA redim data1.x(15) redim data2.x(8) ''分别对data1和data2的操作 '' '' ''对data1和data2操作结束 data1=data2 '直接将data2赋值给data1,当data2在以后的操作中发生改变后data1也会发生改变end sub
代码如上,问题如下:
(1)当直接将data2赋值给data1,当data2在以后的操作中发生改变后data1也会发生改变,也就是说直接赋值的是按引用传递的;
(2)因为自定义数据myDATA中的x在不同的数据data1和data2中的数据长度不同,所以用for循环一个个的赋值过去太麻烦,能否有快捷的方式直接将data2按值(而非按引用)赋值给data1??
谢谢~~
[解决办法]笨办法,把位置放对,把data1=data2放到最后执行
[解决办法]你应该用 Class ,当只有简单类型的时候用 Clone()
但是 Array 的话,就需要实现深层拷贝。比如实现
序列化、反序列化也可以。