我試圖通過賦值語句在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