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

绵绵兔 2012-01-20 05:34:49
代码如下:
模块声明:

Public Structure aaa2
Dim s As String
End Structure

Public Structure aaa1
Dim str As String
Dim rr() As aaa2
End Structure


窗体中的代码:
Dim k As aaa1
Dim kb As aaa1
ReDim k.rr(1)
k.str = "123"
k.rr(1).s = "我123"
MsgBox(k.rr(1).s)
kb = k
kb.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。
...全文
160 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
绵绵兔 2012-01-20
  • 打赏
  • 举报
回复
谢谢,了解了。
NdscFaineant 2012-01-20
  • 打赏
  • 举报
回复
实现aaa1.Clone()方法,在Clone方法里实现深拷贝,然后kb = k.Clone()

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧