Есть ли такой интерфейс фреймворка .NET?
public interface IEvent { event EventHandler Event; }
Я, конечно, могу написать свой, но я буду использовать его, если он уже существует. Возможно, на нем тоже есть метод Fire / Raise.
нет там нет.
Обычно события в C # / CLR не используют базовый шаблон интерфейса, как показано в вашем вопросе. Это намного ближе к стилю событий Java. Ближайшим элементом будет общий делегат события, который можно использовать повторно вместо создания новых типов делегатов. Это существует в System.EventHandler<TEventArgs>
System.EventHandler<TEventArgs>
Пока нет, но интерфейсы .Net 4.0, IObservable<T> и IObserver<T> будут частью Reactive Framework, см. Информацию в блог Пола Батума .
IObservable<T>
IObserver<T>
Вот как интерфейсы находятся в их текущем воплощении:
interface IObservable<out T> { IDisposable Subscribe(IObserver o); } interface IObserver<in T> { void OnCompleted(); void OnNext(T v); void OnError(Exception e); }
Нет реального совпадения с этим в мире .NET. Могу ли я предложить вам рассмотреть реализацию EventPool ? У него есть возможность инициировать события, и события могут быть описаны как перечисления (или тому подобное).
Нет, в BCL или любых других библиотеках классов .NET такого стандартного интерфейса нет, по крайней мере, насколько мне известно.