Mat*_*lay 20 c# system.reactive
我正在寻找System.Reactive.Joins的介绍/一些文档,其中包括Pattern,Plan,QueryablePattern和QueryablePlan类.谷歌不打开任何东西("System.Reactive.Joins"),MSDN有什么,有没有样品这里,并从优秀的资源,这个问题并不包括该命名空间.
有人有指点吗?
SPF*_*ake 12
找到一个很好的SO问题来显示用法,但对我来说,Plan和Pattern的总体目的是创建一个可观察的组合单元而不是一个组合的可观察对象.语义,我知道,但对我来说,使用这种语法然后使用各种其他"加入"方法似乎更容易一些.它允许您将连接与投影完全分开,因此您可以存储中间计划并随时使用其他可观察对象进行组合.
例如:
// Suppose we have observables o1, o2, ..., o9. All IObservable<int>.
var o1and2 = o1.And(o2); // Store this bad boy for later use. Pattern<int, int>
var o5and6and9 = o5.And(o6).And(o9).Then((t1,t2,t3) => t1+t2+t3); // Plan<int>
var o3and7 = o3.And(o7).Then((t1,t2) => string.Format("Result: {0}", t1+t2)); // Plan<string>
var o12ando8and6 = o1and2.And(o8).And(o6).Then((t1,t2,t3,t4) => new Tuple((decimal)t1, t2, t3.ToString(), t4)); // Plan<Tuple<decimal, int, string, int>>
// When similar results together. This will fire when any of the Patterns give a result.
var firstObserve = Observable.When(o1and2.Then((t1,t2) => t1+t2), o5and6and9); // IObservable<int>
var secondObserve = Observable.When(o3and7); // IObservable<string>
var thirdObserve = Observable.When(o12ando8and6); // IObservable<Tuple<decimal, int, string,int>>
Run Code Online (Sandbox Code Playgroud)
SO文章: .NET的反应性扩展(Rx):完成所有事件后立即采取行动
另外,找到了一个实际上有助于理解如何使用它的RX文档:
http://www.clipcode.net/mentoring/RxReferenceLibrary.pdf