C# 类(14) 事件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    //先在外面定义一个类.

    class MyClass
    {
        //委托是事件的前提,所以先定义一个委托

        public delegate void Mydelagate(int i);
        // 接着定义事件. 
        public event Mydelagate MyEvent; // event关键字是定义事件. 事件必须用委托

        // 让事件在给某个属性赋值的时候触发
        int FHello;
        public int Hello
        {
            get { return FHello; }
            set
            {
                if (value != FHello)
                {
                    FHello = value;
                    MyEvent(FHello);
                }
            }
        }
        //到这里事件就定义完了.但是还缺少让事件关联的方法.
    }
    class Program
    {
        // 这里我们定义一个和事件关联的方法.
        public static void ShowMessage(int i)  //
        {
            if (i == 10)
            { Console.WriteLine("十全十美"); }
            else
            { Console.WriteLine("也许没有十全十美的事"); }
        }
        //然后开始实例上面MyClass这个类
        static void Main(string[] args)
        {
            MyClass My = new MyClass();
            My.MyEvent += new MyClass.Mydelagate(ShowMessage);  //给事件关联方法.事件只能出现在+= 或者 -=的左边.
            //然后我们来试试这个事件, 给Hello属性赋值看看

            My.Hello = 10;  // 输出十全十美
            My.Hello = 9;  // 输入也许没有十全十美的事.
        }
    }
}
posted @ 2012-10-07 20:33  梦断难寻  阅读(491)  评论(0编辑  收藏  举报