我试图通过赋值语句在VB6中创建两个相同的对象;这样的事情...在VB6中分配对象
Dim myobj1 As Class1
Dim myobj2 As Class1
Set myobj1 = New Class1
myobj1.myval = 1
Set myobj2 = myobj1
它已成为明显的是,这不会产生两个对象,而是两个引用同一个对象,这不是我所追求的。有什么办法来创造这种方式的第二个目的,还是我对象一个成员一次复制...
Set myobj2 = new Class1
myobj2.mem1 = myobj1.mem1
...
?
编辑2 Scott Whitlock已经更新了他的优秀答案,并且将他的更改纳入了这个现在可用的代码片段。
Private Type MyMemento
Value1 As Integer
Value2 As String
End Type
Private Memento As MyMemento
Public Property Let myval(ByVal newval As Integer)
Memento.Value1 = newval
End Property
Public Property Get myval() As Integer
myval = Memento.Value1
End Property
Friend Property Let SetMemento(new_memento As MyMemento)
Memento = new_memento
End Property
Public Function Copy() As Class1
Dim Result As Class1
Set Result = New Class1
Result.SetMemento = Memento
Set Copy = Result
End Function
一个随后执行在由此代码分配...
Set mysecondobj = myfirstobj.Copy
这个问题可能是有趣的:http://stackoverflow.com/questions/218696/cloning-objects-in-vba – 2011-01-26 14:29:07