// original code from rx.codeplex.com
// some modified.
/* ------------------ */
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
using System;
using System.Collections.Generic;
namespace UniRx
{
///
/// Represents a .NET event invocation consisting of the strongly typed object that raised the event and the data that was generated by the event.
///
///
/// The type of the sender that raised the event.
/// This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics.
///
///
/// The type of the event data generated by the event.
/// This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics.
///
public interface IEventPattern
{
///
/// Gets the sender object that raised the event.
///
TSender Sender { get; }
///
/// Gets the event data that was generated by the event.
///
TEventArgs EventArgs { get; }
}
///
/// Represents a .NET event invocation consisting of the weakly typed object that raised the event and the data that was generated by the event.
///
/// The type of the event data generated by the event.
public class EventPattern : EventPattern