سؤال

وأنا أحاول أن استخدام رد الفعل الإضافات من بو، وأنا الوقوع في المشاكل النوع. وإليك مثال بسيط:

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: الإضافة لا يمكن يلقي من نوع المصدر إلى نوع الوجهة. القضية تبدو مع كيف انا خلق ملاحظتها، ولكني كافحت لنرى أين تنشأ المشكلة نوع من.

والأفكار؟

هل كانت مفيدة؟

المحلول

و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)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top