业精于勤

导航

事件event

委托,是事件基础

类的对象,发出消息,在运行时绑定处理方法。

以下,以animal为例,体温过高时,触发事件

1 先定一个个委托

 

delegate void MyDelegate();

 

2 在类中定义事件,并在某时刻触发。此例中在体温属性改变,大于37.5时触发。

 

    class Animal
    {
        // 定义一个事件 体温过高  (先定义MyDelegate)
        public event MyDelegate highTemperature;
        float temperature;//体温

        public float Temperature
        {
            get { return temperature; }
            set
            {
                temperature = value; 
                //体温高时,触发事件。事件,一般在属性改变时触发
                if (temperature > 37.5)
                {
                    highTemperature();
                }
            }
        }      
    }

 

3 使用事件时,要将事件与处理事件的方法关联,然后改变属性触发事件。

定义一个方法,热了,就开空调

 

        static void a_highTemperature()
        {
            Console.WriteLine("开空调");
        }

 

然后在main方法中写

 

            Animal a = new Animal();
            a.highTemperature += new MyDelegate(a_highTemperature); //事件 --- 处理方法
            a.Temperature = 37.6f;

 

posted on 2012-04-11 15:46  言午  阅读(305)  评论(0编辑  收藏  举报