从事件创建可观察到的错误

路易斯·德尔加多(Luis Delgado)

我试图从一个事件创建一个可观察的序列。该事件具有以下签名:

event SensorValueChangedEventHandler SensorValueChanged;

我正在尝试通过以下方式创建Observable:

var eventAsObservable = Observable.FromEvent(
                                (EventHandler<SensorValueChangedEventArgs> ev) => new SensorValueChangedEventHandler(ev), 
                                ev => CrossDeviceMotion.Current.SensorValueChanged += ev,
                                ev => CrossDeviceMotion.Current.SensorValueChanged -= ev);

但是,编译器失败并出现以下错误:

Error CS0029: Cannot implicitly convert type `System.Action' to `DeviceMotion.Plugin.Abstractions.SensorValueChangedEventHandler'

我想知道是否有人可以评论如何从此事件中正确创建可观察对象。

EVK

最有可能您需要这样做:

var eventAsObservable = Observable.FromEvent<SensorValueChangedEventHandler, SensorValueChangedEventArgs>(
    handler => (sender, args) => handler(args),
    ev => CrossDeviceMotion.Current.SensorValueChanged += ev,
    ev => CrossDeviceMotion.Current.SensorValueChanged -= ev);

在第一个参数中,您告诉如何Action<SensorValueChangedEventArgs>(基本上OnNext)和您的委托人之间进行映射在第二个和第三个参数中,您传递了subscribe和unsubscribe函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章