0

Boo の Reactive Extensions を使用しようとしていますが、型の問題が発生しています。基本的な例は次のとおりです。

def OnSubscribe(observer as IObservable[of string]) as callable:
    print "subscribing"

    def Dispose():
        print "disposing"

    return Dispose

observable = System.Linq.Observable.Create[of string](OnSubscribe)
observer = System.Linq.Observer.Create[of string]({x as string | print x})
observable.Subscribe(observer)

ここでサブスクライブすると、 System.InvalidCastException: Cannot cast from source type to destination type が返されます。問題は、オブザーバブルの作成方法にあるようですが、型の問題がどこから発生するのかを確認するのに苦労しました。

アイデア?

4

1 に答える 1

3

Observable.CreateかかりFunc<IObserver,Action>ますが、あなたOnSubscribeはを受け入れますIObservable

これを試して:

def OnSubscribe(observer as IObserver[of string]) as callable():
    print "subscribing"

    observer.OnNext("first and only value")
    observer.OnCompleted()

    def Dispose():
        print "disposing"

    return Dispose

observable = System.Linq.Observable.Create[of string](OnSubscribe)
observer = System.Linq.Observer.Create[of string]({x as string | print x})
observable.Subscribe(observer)
于 2011-03-18T07:14:16.703 に答える