代码之家  ›  专栏  ›  技术社区  ›  Mark Heath

.NET中是否有包含单个事件处理程序的标准接口

  •  1
  • Mark Heath  · 技术社区  · 15 年前

    有这样的.NET框架接口吗?

    public interface IEvent
    {
        event EventHandler Event;
    }
    

    当然,我可以自己写,但如果它已经存在,我会重用它。也可能有火灾/上升方法。

    4 回复  |  直到 15 年前
        1
  •  9
  •   JaredPar    15 年前

    不,没有。

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

        2
  •  2
  •   Pop Catalin    15 年前

    还没有,但是在.NET 4.0中会有, IObservable<T> IObserver<T> 接口是反应式框架的一部分,请参见 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); 
    }  
    
        3
  •  0
  •   Adam Robinson    15 年前

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

        4
  •  0
  •   Pete OHanlon    15 年前

    在.NET世界中没有真正的匹配。不过,我可以建议您研究 EventPool ?这具有触发事件的能力,事件可以描述为枚举(或类似)。