2011-01-17 11 views

答えて

8

これは、クライアントがイベントをサブスクライブできるように、タイプがイベントを実装する必要があることを意味します。

プロパティはget/setと同様に、イベントのペアをメソッド(追加/削除)とみなします。インターフェイスにプロパティを持つことができるのと同じように、イベントを作成することもできます。実装では、適切な追加/削除メソッドとメタデータをイベントに関連付ける必要があります。

public event EventHandler EventFromInterface; 

または明示的な追加/削除メソッドを持つ:C#では、このフィールドのようなイベントを使用して行うことができます

public event EventHandler EventFromInterface 
{ 
    add { ... } 
    remove { ... } 
} 
+0

イベントを発生させることも必要ですが、イベントを定義せずにヘルプを設計するのは賢明です。 –

+1

無関係な観察 - 1時間以内にイベント(およびメソッドのペア)に関する少なくとも3-4の質問があったのは面白い! – Mehrdad

+0

@ランバート:私は彼らが無関係から遠いと思う:)元の質問が基本的にこれらのものを生み出したと推測している... –

0

をそれはそのインターフェイスを実装するものは、そのイベントを発生させなければならないことを意味します。インターフェイス内のメソッドまたはプロパティとほとんど同じです。

+5

私は、ここでは "レイズ"は不適切な言葉だと思う。イベントを強制的にどこにでも持ち出すことはできませんが、クラスは呼び出し元がサブスクリプション/サブスクリプションに使用するための追加/削除の実装を提供する必要があります。 –

+1

私は気難しいですが、実装者がイベントを定義しなければならないことを意味します(そしておそらくそれを発生させることはありません)。 –

+0

@Jon Skeetは、実装者がイベントを発生させない場合、イベントは役に立たず、またはパブリックアクセスがイベントを発生させる可能性があります。 –

関連する問題