.NET中是否有包含单个EventHandler的标准接口

时间:2009-09-18 15:16:51

标签: c# .net design-patterns

是否有像这样的.NET框架界面?

public interface IEvent
{
    event EventHandler Event;
}

我当然可以写自己的,但如果已经存在,我会重复使用它。也许也可以使用Fire / Raise方法。

4 个答案:

答案 0 :(得分:9)

不,没有。

通常,C#/ CLR中的事件不使用您的问题中所示的接口基本模式。这更类似于Java风格的事件。最接近的项目是通用事件委托,可以重复使用而不是创建新的委托类型。这确实存在于System.EventHandler<TEventArgs>

答案 1 :(得分:2)

还没有,但是.Net 4.0,IObservable<T>IObserver<T>接口是Reactive Framework的一部分,请参阅Paul Batum blog上的信息。

这就是接口目前的形式:

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

interface IObserver<in T>  
{     
    void OnCompleted();     
    void OnNext(T v);      
    void OnError(Exception e); 
}  

答案 2 :(得分:0)

不,BCL或任何其他.NET类库中没有这样的标准接口,至少据我所知。

答案 3 :(得分:0)

.NET世界中没有真正的匹配。但是,我可以建议您查看EventPool的实现吗?它具有触发事件的能力,事件可以描述为枚举(或类似)。