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;
namespace System.Reactive
{
public class EventPattern<TSender, TEventArgs> : IEquatable<EventPattern<TSender, TEventArgs>>, IEventPattern<TSender, TEventArgs>
{
public TSender Sender { get; }
public TEventArgs EventArgs { get; }
public EventPattern(TSender sender, TEventArgs e)
{
Sender = sender;
EventArgs = e;
}
public bool Equals(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;
}
public override bool Equals(object obj)
{
return Equals(obj as EventPattern<TSender, TEventArgs>);
}
public override int GetHashCode()
{
int hashCode = EqualityComparer<TSender>.Default.GetHashCode(Sender);
int hashCode2 = EqualityComparer<TEventArgs>.Default.GetHashCode(EventArgs);
return (hashCode << 5) + (hashCode ^ hashCode2);
}
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);
}
}
}