Я пытаюсь реализовать свойство ToEnumerable для внешнего типа, который его не реализует.Я не могу заставить код работать.
Поэтому я потряс его до добавления нетипизированного свойства GetEnumerator и добавил для руководства код для ToComparable.Однако я понятия не имею, как хранить изменяемое состояние для счетчика.
Является ли pb анонимным классом?
Как бы вы это сделали?
open System
open System.Collections
open System.Collections.Generic
type Bloomberglp.Blpapi.Element with
//**WORKS OK**
member this.ToComparable:IComparer<Bloomberglp.Blpapi.Element> = {
new IComparer<Bloomberglp.Blpapi.Element> with
member this.Compare(x, y) = x.NumValues.CompareTo(y.NumValues)
}
//**WORKS (sort of) OK without storing the state**
member this.GetEnumerator2:IEnumerator = {
//let mutable i =0
new IEnumerator with
member this2.Reset() =
i <- 0;
()
member this2.MoveNext() =
if i < n then
i <- i + 1
true
else
false
member this2.Current
with get() =
this.GetElement(0) :> obj
}