<PackageReference Include="System.Reactive" Version="7.0.0-preview.1" />
Pattern<TSource1, TSource2>
using System.
Runtime.
CompilerServices;
namespace System.
Reactive.
Joins
{
[
System.
Runtime.
CompilerServices.
NullableContext(
1)]
[
System.
Runtime.
CompilerServices.
Nullable(
0)]
public class Pattern<[
System.
Runtime.
CompilerServices.
Nullable(
2)]
TSource1, [
System.
Runtime.
CompilerServices.
Nullable(
2)]
TSource2> :
Pattern
{
internal IObservable<
TSource1>
First { get; }
internal IObservable<
TSource2>
Second { get; }
internal Pattern(
IObservable<
TSource1>
first,
IObservable<
TSource2>
second)
{
First =
first;
Second =
second;
}
public Pattern<
TSource1,
TSource2,
TSource3>
And<[
System.
Runtime.
CompilerServices.
Nullable(
2)]
TSource3>(
IObservable<
TSource3>
other)
{
if (
other ==
null)
throw new ArgumentNullException(
"other");
return new Pattern<
TSource1,
TSource2,
TSource3>(
this.
First,
this.
Second,
other);
}
public Plan<
TResult>
Then<[
System.
Runtime.
CompilerServices.
Nullable(
2)]
TResult>(
Func<
TSource1,
TSource2,
TResult>
selector)
{
if (
selector ==
null)
throw new ArgumentNullException(
"selector");
return new System.
Reactive.
Joins.
Plan<
TSource1,
TSource2,
TResult>(
this,
selector);
}
}
}