Есть ли в .NET стандартный интерфейс, содержащий один EventHandler? - PullRequest
1 голос
/ 18 сентября 2009

Есть ли такой интерфейс фреймворка .NET?

public interface IEvent
{
    event EventHandler Event;
}

Я, конечно, могу написать свой, но я буду использовать его, если он уже существует. Возможно, на нем тоже есть метод Fire / Raise.

Ответы [ 4 ]

9 голосов
/ 18 сентября 2009

нет там нет.

Обычно события в C # / CLR не используют базовый шаблон интерфейса, как показано в вашем вопросе. Это намного ближе к стилю событий Java. Ближайшим элементом будет общий делегат события, который можно использовать повторно вместо создания новых типов делегатов. Это существует в System.EventHandler<TEventArgs>

2 голосов
/ 18 сентября 2009

Пока нет, но интерфейсы .Net 4.0, IObservable<T> и IObserver<T> будут частью Reactive Framework, см. Информацию в блог Пола Батума .

Вот как интерфейсы находятся в их текущем воплощении:

interface IObservable<out T> 
{      
    IDisposable Subscribe(IObserver o); 
} 

interface IObserver<in T>  
{     
    void OnCompleted();     
    void OnNext(T v);      
    void OnError(Exception e); 
}  
0 голосов
/ 18 сентября 2009

Нет реального совпадения с этим в мире .NET. Могу ли я предложить вам рассмотреть реализацию EventPool ? У него есть возможность инициировать события, и события могут быть описаны как перечисления (или тому подобное).

0 голосов
/ 18 сентября 2009

Нет, в BCL или любых других библиотеках классов .NET такого стандартного интерфейса нет, по крайней мере, насколько мне известно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...