<PackageReference Include="System.Reactive" Version="6.1.0-preview.9" />

EventPattern<TSender, TEventArgs>

public class EventPattern<TSender, TEventArgs> : IEquatable<EventPattern<TSender, TEventArgs>>, IEventPattern<TSender, TEventArgs>
Represents a .NET event invocation consisting of the strongly typed object that raised the event and the data that was generated by the event.
using System.Collections.Generic; using System.Runtime.CompilerServices; namespace System.Reactive { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public class EventPattern<[System.Runtime.CompilerServices.Nullable(2)] TSender, [System.Runtime.CompilerServices.Nullable(2)] TEventArgs> : IEquatable<EventPattern<TSender, TEventArgs>>, IEventPattern<TSender, TEventArgs> { [System.Runtime.CompilerServices.Nullable(2)] [field: System.Runtime.CompilerServices.Nullable(2)] public TSender Sender { [System.Runtime.CompilerServices.NullableContext(2)] get; } public TEventArgs EventArgs { get; } public EventPattern([System.Runtime.CompilerServices.Nullable(2)] TSender sender, TEventArgs e) { Sender = sender; EventArgs = e; } public void Deconstruct([System.Runtime.CompilerServices.Nullable(2)] out TSender sender, out TEventArgs e) { TSender sender2 = Sender; TEventArgs eventArgs = EventArgs; sender = sender2; e = eventArgs; } public bool Equals([System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1, 1 })] EventPattern<TSender, TEventArgs> other) { if ((object)other == null) return false; if ((object)this == other) return true; if (EqualityComparer<TSender>.Default.Equals(Sender, other.Sender)) return EqualityComparer<TEventArgs>.Default.Equals(EventArgs, other.EventArgs); return false; } [System.Runtime.CompilerServices.NullableContext(2)] public override bool Equals(object obj) { return Equals(obj as EventPattern<TSender, TEventArgs>); } public override int GetHashCode() { TSender sender = Sender; int num = sender?.GetHashCode() ?? 0; TEventArgs eventArgs = EventArgs; int num2 = eventArgs?.GetHashCode() ?? 0; return (num << 5) + (num ^ num2); } public static bool operator ==(EventPattern<TSender, TEventArgs> first, EventPattern<TSender, TEventArgs> second) { return object.Equals(first, second); } public static bool operator !=(EventPattern<TSender, TEventArgs> first, EventPattern<TSender, TEventArgs> second) { return !object.Equals(first, second); } } }