vb.net中嵌套结构体传值复制的有关问题
vb.net中嵌套结构体传值复制的问题代码如下:模块声明:VB.NET codePublic Structure aaa2Dim s As StringEn
vb.net中嵌套结构体传值复制的问题
代码如下:
模块声明:
VB.NET codePublic Structure aaa2Dim s As StringEnd StructurePublic Structure aaa1Dim str As StringDim rr() As aaa2End Structure
窗体中的代码:
VB.NET codeDim k As aaa1Dim kb As aaa1ReDim k.rr(1)k.str = "123"k.rr(1).s = "我123"MsgBox(k.rr(1).s)kb = kkb.str = "1234"kb.rr(1).s = "我1234"MsgBox(k.rr(1).s)MsgBox(k.str)
过程是将k复制到kb,然后从kb中修改数据
结果发现kb.str修改后,k.str没有发生变化,
但是kb.rr(1).s修改后,k.rr(1).s的值却跟着一起修改了。
也就是嵌套结构aaa2在复制的过程中仅仅只是传了数据地址给kb而已,并没有将所有数据一起复制给kb。请问如何才能在复制时完全新建一个kb。
[解决办法]实现aaa1.Clone()方法,在Clone方法里实现深拷贝,然后kb = k.Clone()