且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

托付和事件的使用

更新时间:2022-09-13 13:16:50

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






本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5131452.html,如需转载请自行联系原作者