<PackageReference Include="System.Reactive" Version="6.1.0-preview.9" />
Pattern<TSource1, TSource2, TSource3>
namespace System.
Reactive.
Joins
{
public class Pattern<
TSource1,
TSource2,
TSource3> :
Pattern
{
internal IObservable<
TSource1>
First { get; }
internal IObservable<
TSource2>
Second { get; }
internal IObservable<
TSource3>
Third { get; }
internal Pattern(
IObservable<
TSource1>
first,
IObservable<
TSource2>
second,
IObservable<
TSource3>
third)
{
First =
first;
Second =
second;
Third =
third;
}
public Pattern<
TSource1,
TSource2,
TSource3,
TSource4>
And<
TSource4>(
IObservable<
TSource4>
other)
{
if (
other ==
null)
throw new ArgumentNullException(
"other");
return new Pattern<
TSource1,
TSource2,
TSource3,
TSource4>(
this.
First,
this.
Second,
this.
Third,
other);
}
public Plan<
TResult>
Then<
TResult>(
Func<
TSource1,
TSource2,
TSource3,
TResult>
selector)
{
if (
selector ==
null)
throw new ArgumentNullException(
"selector");
return new Plan<
TSource1,
TSource2,
TSource3,
TResult>(
this,
selector);
}
}
}