zoukankan      html  css  js  c++  java
  • 委托与事件

    namespace CShapExc
    {
        class Program
        { 
            static void Main()
            {
                Heater h = new Heater();
                JBQ j = new JBQ();
                 h.BoilEven += j.MakeAlert;
                 h.BoilEven += j.DisplayInfo;
                h.BoilWater();
                Console.ReadKey();
            }
        }
        public class Heater
        {
            private int wenDu;
            public delegate void BoilHandle(int para);//声明委托
            public event BoilHandle  BoilEven;//声明事件
            /// <summary>
            /// 烧水
            /// </summary>
            public void BoilWater()
            {
                for (int i = 0; i <= 110; i++)
                {
                    wenDu = i;
                    if (wenDu > 95)
                    {
                        if (BoilEven != null)//如果有对象注册
                        {
                            BoilEven(wenDu);//调用所有注册对象的方法
                        }
                    }
                }
            }
        }
        /// <summary>
        /// 警报器
        /// </summary>
        public class JBQ
        {
            /// <summary>
            /// 报警
            /// </summary>
            /// <param name="param"></param>
            public void MakeAlert(int param)
            {
                Console.WriteLine("警报警报:温度已经{0}度了",param);
            }
            /// <summary>
            /// 显示信息
            /// </summary>
            /// <param name="param"></param>
            public void DisplayInfo(int param)
            {
                Console.WriteLine("当前温度:{0}度",param);
            }
        }
    }
  • 相关阅读:
    Visual Studio 中的 .NET Framework 类库
    泛型
    泛型
    事件
    基于事件的异步模式
    使用委托进行异步编程
    使用 IAsyncResult 调用异步方法
    异步编程设计模式
    演练:使用VS2010 C# 创作简单的多线程组件
    [转][MEF插件式开发] 一个简单的例子
  • 原文地址:https://www.cnblogs.com/xiexingen/p/2846518.html
Copyright © 2011-2022 走看看