我正在VBA中創建一個不可變鏈接列表類。它提供ToArray
和ToCollection
方法,我已經驗證了這兩個方法的正常工作。但Get NewEnum() As IUnknown
屬性不起作用,我不知道爲什麼。無法在VBA中創建新的枚舉
Public Property Get NewEnum() As IUnknown
Attribute NewEnum.VB_UserMemId = -4
Set NewEnum = ToCollection.[_NewEnum]
End Property
通過下面的代碼與sequence
步進作爲SList
與調試器
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
顯示For Each element In sequence
主叫Get NewEnum
其正確構建的收集和然後返回到Copy
和不執行迭代之後退出循環並沒有錯誤。我唯一的猜測是NewEnum
是一個變量的迭代器,它在退出Get NewEnum
時被銷燬。 這是怎麼回事?
http://chat.stackexchange.com/transcript/message/18457890#18457890 – RubberDuck 2014-11-03 19:22:43