gpt4 book ai didi

.net - 使用 2 个 int 参数订阅 Delegate

转载 作者:行者123 更新时间:2023-12-01 13:29:37 25 4
gpt4 key购买 nike

我正在为 Windows 10 UWP 项目使用 Rx-Main(可观察库)。我为第三个图书馆举办了一个事件,名为:

OnNumberChangedEventHandler

public delegate void OnNumberChangedEventHandler(int newNumber, int oldNumber);

我一直在猜测如何使用

进行订阅
Observable.FromEvent<OnNumberChangedEventHandler>(x =>  x => _calculator.OnNumberChanged += x, x => _calculator.OnNumberChanged -= x)

但我不知道如何 Hook 它。我知道如何为 EventHandlers 或带有 1 个参数的 EventDelegates 执行此操作,但在这种情况下它有 2 个 int 参数。关于如何做到这一点有什么想法吗?

谢谢。

最佳答案

我非常讨厌这种语法:

var o = Observable.FromEvent<OnNumberChangedEventHandler, Tuple<int, int>>(
a => (i1, i2) => a(Tuple.Create(i1, i2)),
h => _calculator.OnNumberChanged += h,
h => _calculator.OnNumberChanged -= h
); //o is type IObservable<Tuple<int, int>>

基本上,Rx 需要知道如何 Hook /取消 Hook 委托(delegate):这是最后两个参数。第一个参数是从自定义委托(delegate)到 Action<Tuple<int, int>> 的转换.然后将该操作用于 OnNext 可观察对象。

你可以换出 Tuple<int, int>如果您愿意,可以输入其他内容。

关于.net - 使用 2 个 int 参数订阅 Delegate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46663972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com