.NET开发人员的反应式扩展



我发现了一些关于这方面的信息,但我对此有一些困惑。所以当我们需要使用这个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)

你明白了。

相关内容

  • 没有找到相关文章

最新更新