2009-09-18 2 views
1

이와 같은 .NET Framework 인터페이스가 있습니까?.NET에 단일 EventHandler가 포함 된 표준 인터페이스가 있습니까?

public interface IEvent 
{ 
    event EventHandler Event; 
} 

물론 내 자신을 쓸 수는 있지만 이미 존재하는 경우 다시 사용하겠습니다. 어쩌면 Fire/Raise 방법도있을 수 있습니다.

+2

그냥 질문 :

는이 인터페이스는 현재의 화신에있는 방법이다. 당신은 자바에서 왔습니까? – Dykam

+0

아니요, WPF, MVVM, 첨부 된 속성 및 데이터 바인딩을 강제로 수행해야만했습니다. –

답변

9

아니요.

일반적으로 C#/CLR의 이벤트는 질문에 표시된대로 인터페이스 기본 패턴을 사용하지 않습니다. 이것은 Java 스타일의 이벤트와 매우 유사합니다. 가장 가까운 항목은 새 대리자 유형을 만드는 대신 재사용 할 수있는 일반 이벤트 대리자입니다. 이것은 존재하지 않습니다 System.EventHandler<TEventArgs>

+0

+1, 네가 맞아, 자바의 옵저버 스타일에 매우 친숙 해 보인다. (뒤에서) –

0

아니오, 최소한 BCL 또는 다른 .NET 클래스 라이브러리에는 그러한 표준 인터페이스가 없습니다. 적어도 알고 있습니다.

0

.NET 세계에서는 실제와 일치하지 않습니다. 그래도 EventPool 구현을 살펴 보겠습니까? 이것은 이벤트를 발생시키는 기능을 가지고 있으며 이벤트는 열거 형 (enums)으로 설명 될 수 있습니다.

2

Reactive Framework의 인터페이스 부분에는 .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); 
} 
+0

나는 그것을 언급하려고했다. 매우 흥미로운 것은 아마도 IEnumerable 만큼 일반적 일 것입니다. –

관련 문제