zoukankan      html  css  js  c++  java
  • 第3章 C#中的委托和事件

    .NET框架中的委托和事件

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Runtime.Serialization.Formatters.Binary;
    using System.IO;
    using System.Text.RegularExpressions;
    
    namespace _.net之美
    {
        class Program
        {
            static void Main(string[] args)
            {
                Heater heater = new Heater();
                Alert alert = new Alert();
                heater.boiled += alert.AlertTemperature;
                heater.boiled += Display.ShowMsg;
                heater.BoilWater();
                Console.ReadKey();
            }
        }
    
        public class Heater
        {
            private readonly string area="ChengDu";
            public string Area { get { return area; } }
    
            private readonly string type = "001";
            public string Type { get { return type; } }
    
            private int temperature;
    
            public delegate void BoiledEventHandle(object sender, BoiledEventArgs args);
            public event BoiledEventHandle boiled;
    
            public void BoilWater()
            {  
                for (int i = 0; i <= 100; i++)
                {
                    temperature = i;
                    BoiledEventArgs e = new BoiledEventArgs(temperature);
                    if (temperature > 95)
                    {
                        OnBoiled(e);
                    }
                }
            }
    
            private void OnBoiled(BoiledEventArgs e)
            {
                if (boiled != null)
                    boiled(this, e);
            }
    
            public class BoiledEventArgs
            {
                private readonly int temperature;
                public BoiledEventArgs(int temperature)
                {
                    this.temperature = temperature;
                }
    
                public int Temperature { get { return this.temperature; } }
            }
        }
    
        public class Alert
        {
            public void AlertTemperature(object sender, Heater.BoiledEventArgs e)
            {
                Heater heater = (Heater)sender;
                Console.WriteLine("Area:{0},Type:{1}", heater.Area, heater.Type);
                Console.WriteLine("水快烧开了!");
            }
        }
    
        public class Display
        {
            public static void ShowMsg(object sender, Heater.BoiledEventArgs e)
            {
                Heater heater = (Heater)sender;
                Console.WriteLine("Area:{0},Type:{1}", heater.Area, heater.Type);
                Console.WriteLine("当前温度:{0}", e.Temperature);
            }
        }
    }
    View Code

    委托进阶

  • 相关阅读:
    Online Object Tracking: A Benchmark 翻译
    线性判别分析(Linear Discriminant Analysis)转载
    网址大全
    计算机视觉学习方法
    计算机视觉顶级期刊会议
    爬取淘宝小姐姐头像
    CSP201512-03画图 90分
    二叉树的基本操作之二叉排序树
    sort排序实现
    冒泡排序实现
  • 原文地址:https://www.cnblogs.com/liuslayer/p/5327020.html
Copyright © 2011-2022 走看看