读书人

Set 值?址?该如何解决

发布时间: 2012-02-08 19:52:21 作者: rapoo

Set 值??址????
Private Sub Command1_Click()
Dim l_objProceA As Proce
Dim l_objProceB As Proce

Set l_objProceA = New Proce
Set l_objProceB = New Proce

l_objProceA.ProcessCode = "AAAAA "
l_objProceB.ProcessCode = "BBBBB "

Set l_objProceA = l_objProceB
l_objProceA.ProcessCode = "CCCCC "
MsgBox l_objProceB.ProcessCode
End Sub



Set l_objProceA = l_objProceB
改A後,什B也跟著改了
使用SET句,像之是址?

我想得到B的一幅本A,操作A而不影到B,要如何做呢?


[解决办法]
我的理解,l_objProceB,l_objProceA相当于两个指针
Set l_objProceA = l_objProceB并非复制一个对象
而是让它们两个指向同一个对象
[解决办法]
引用类型的对象默认传的是指向堆的地址。
[解决办法]
如果得到副本,你看看对象有没有Clone方法,有的话返回副本。
否则你可以重新有构造函数再建立一个对象,把信息全部设置成跟A相同的。

读书人网 >VB

热点推荐