イベントについて忘れてしまった人は第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