インターフェースのメンバにイベントを加えることができます。
イベントについて忘れてしまった人は第47章を参照してください。
注意点としては、イベントハンドラをpublicで宣言しておく必要があります。あとは、メソッドの時と同じです。
// interface04.cs
using System;
public delegate void MyEventHandler();
public interface IEvent
{
event MyEventHandler MyEvent;
void OnMyEvent();
}
class MyClass : IEvent
{
public event MyEventHandler MyEvent;
public void OnMyEvent()
{
if (MyEvent != null)
MyEvent();
}
}
class interface04
{
public static void Show()
{
Console.WriteLine("イベントが発生しました");
}
public static void Main()
{
MyClass mc = new MyClass();
// イベントハンドラをイベントに追加
mc.MyEvent += new MyEventHandler(Show);
// イベントを発生させる
mc.OnMyEvent();
}
}
IEventインターフェースのメンバには、イベントとイベント送信メソッドが含まれています。MyClassクラスは、IEventインターフェースを実装しています。
Mainメソッドで、イベントハンドラをイベントに追加して、OnMyEventメソッドでイベントを発生させています。
実行結果は次のようになります。
Update 04/Oct/2006 By Y.Kumei