首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

vb.net中嵌套结构体传值复制的有关问题

2012-02-09 
vb.net中嵌套结构体传值复制的问题代码如下:模块声明:VB.NET codePublic Structure aaa2Dim s As StringEn

vb.net中嵌套结构体传值复制的问题
代码如下:
模块声明:

VB.NET code
Public Structure aaa2Dim s As StringEnd StructurePublic Structure aaa1Dim str As StringDim rr() As aaa2End Structure


窗体中的代码:
VB.NET code
Dim 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()

热点排行