随笔 - 2146  文章 - 97 评论 - 11767 trackbacks - 253


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);
    }
}


posted on 2009-01-03 17:18  万一  阅读(...)  评论(...编辑  收藏