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);
}
}
}