首页 > 其他 > 详细

委托和事件的使用

时间:2014-12-18 15:13:19      阅读:295      评论:0      收藏:0      [点我收藏+]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace delegatedemo
{
    public delegate void BoilDelegate(int temp);
    public class Heater
    {
        public int temprature;
        public event BoilDelegate boilEvent;
        public void Boil()
        {
            for (int i = 0; i <= 100; i++)
            {
                temprature = i;
                if (temprature > 95)
                {
                    if (boilEvent != null)
                    {
                        boilEvent(temprature);
                    }
                }
            }
        }
    }

}

显示器和报警器

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


namespace delegatedemo
{
    public class Alerm
    {
        public void MakeAlerm(int temp)
        {
            Console.WriteLine("滴滴滴,水已经{0}度!", temp);
        }
    }


    public class Display
    {
        public void ShowMsg(int temp)
        {
            Console.WriteLine("水温是{0}度", temp);
            Console.ReadKey();
        }
    }
}


调用:

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


namespace delegatedemo
{
    class Program
    {
        static void Main(string[] args)
        {
            heater = new Heater();
            heater.boilEvent += new Alerm().MakeAlerm;//注册报警器发出警报的事件
            heater.boilEvent += new Display().ShowMsg;//注册显示温度的事件
            heater.Boil();
        }
    }
}

委托和事件的使用

原文:http://blog.csdn.net/luohuajiexiejuan/article/details/42005241

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!