using System;
class MyClass
{
private int FNum;
public delegate void MyDelegate(int n); /* 委托是事件的前提 */
public event MyDelegate MyEvent; /* 用 event 關鍵字根據已有的委托聲明事件 */
/* 假如是在給 Num 賦值時觸動事件 */
public int Num
{
get { return FNum; }
set
{
FNum = value;
if (MyEvent != null) MyEvent(FNum);
}
}
}
class Program
{
static void Main()
{
MyClass obj = new MyClass();
/* 給事件關聯上在下面定義的方法: Event_Method */
obj.MyEvent += new MyClass.MyDelegate(Event_Method);
obj.Num = 5; /* 會觸動事件而寫出: 5 是奇數 */
obj.Num = 6; /* 會觸動事件而寫出: 6 是偶數 */
Console.ReadKey();
}
/* 這是准備給事件調用的方法 */
static void Event_Method(int n)
{
if (n % 2 == 0)
Console.WriteLine("{0} 是偶數", n);
else
Console.WriteLine("{0} 是奇數", n);
}
}