Tworzę klasę VLT w języku Immutable Linked List. Dostarcza metod, które zarówno sprawdziłem jako działające. Jednak właściwość Get NewEnum() As IUnknown
nie działa i nie wiem dlaczego.Nie można utworzyć nowej enum w VBA
Public Property Get NewEnum() As IUnknown
Attribute NewEnum.VB_UserMemId = -4
Set NewEnum = ToCollection.[_NewEnum]
End Property
Krocząc przez następujący kod z sequence
jako SList
z debuggera
Public Function Copy(ByVal sequence As Variant) As SList
Dim made As New SList
Dim element As Variant
For Each element In sequence
Set made = made.Cons(element)
Next
Set Copy = made.Reverse
End Function
pokazuje For Each element In sequence
nazywając Get NewEnum
która buduje kolekcję prawidłowo, a następnie powraca do Copy
i wyjście z pętli po wykonaniu bez powtórzeń i bez błędów. Przypuszczam tylko, że NewEnum
jest iteratorem zmiennej, która jest niszczona, gdy kończy się Get NewEnum
. Czy to się dzieje?
http://chat.stackexchange.com/transcript/message/18457890#18457890 – RubberDuck