vb.net中嵌套结构体传值复制的问题 20
代码如下:模块声明:PublicStructureaaa2Dims()AsByteEndStructurePublicStructureaaa1DimstrAsStrin...
代码如下:
模块声明:
Public Structure aaa2
Dim s() As Byte
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。
上面模块声明错了,应该是
Public Structure aaa2
Dim s As String
End Structure
Public Structure aaa1
Dim str As String
Dim rr() As aaa2
End Structure 展开
模块声明:
Public Structure aaa2
Dim s() As Byte
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。
上面模块声明错了,应该是
Public Structure aaa2
Dim s As String
End Structure
Public Structure aaa1
Dim str As String
Dim rr() As aaa2
End Structure 展开
3个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询