我发现了一些关于这方面的信息,但我对此有一些困惑。所以当我们需要使用这个RX.NET.
使用这些物品有什么重要意义?我什么时候需要用这个?
与每个工具集一样,它可以塑造处理问题的方式。如果有一把锤子,你所有的问题都可能变成钉子。Rx.NET也是如此,它为您提供了一种新的方法。对于特定的问题,你是否选择使用这种方法取决于你,与任何工具或技术一样,也有优点和缺点。你需要学习和积累经验,为自己做出这些复杂的判断。
对于初学者来说,Rx.NET允许你培养"反应式"编程的方法这类似于函数式编程,在某种意义上,您将行为声明为由底层行为组成。Rx.NET允许您在流上指定函数以提供新的流。这种强大的技术几乎可以应用于任何你能想到的问题。
例如,一个使用Linq和Rx.NET将鼠标移动绘制为边界框内屏幕上的点的程序会像这样:
mouseMovements.Where(box.Contains(m)).Subscribe(DrawPoint)
其中mouseMovements将是作为可观察的鼠标事件
你可以申报
myPointsInBox = mouseMovements.Where(box.Contains(m))
作为自己的可观察对象,并拥有多个订阅者:
myPointsInBox.Subscribe(DrawPoint)
myPointsInBox.Subscribe(ConnectWithLines)
myPointsInBox.Subscribe(UpdatePointCounter)
你可以从流中制作流
var everyThousandthPoint= myPointsInBox.Buffer(….).Select(…)
然后用它们做事情
everyThousandthPoint.Subscribe(FlashPointCounter)
你明白了。