Exemplo n.º 1
0
 public static void ShowMsg(Object sender, Heater.BoiledEventArgs e) 
 {
     Heater heater = (Heater)sender;
     Console.WriteLine("Alarm:{0} - {1}: ", heater.area, heater.type);
     Console.WriteLine("Display:水快烧开了,当前温度:{0}度。", e.temperature);
     Console.WriteLine();
 }
Exemplo n.º 2
0
 public void MakeAlert(Object sender, Heater.BoiledEventArgs e) 
 {
     Heater heater = (Heater)sender;
     Console.WriteLine("Alarm: {0} - {1}", heater.type, heater.area);
     Console.WriteLine("Alarm: 嘀嘀嘀,水已经 {0} 度了:", e.temperature);
     Console.WriteLine();
 }
Exemplo n.º 3
0
 static void Main(string[] args) 
 {
     Heater ht = new Heater();
     Alarm alarm = new Alarm();
     ht.Boiled += alarm.MakeAlert;
     ht.Boiled += (new Alarm()).MakeAlert;
     ht.Boiled += Display.ShowMsg;
     ht.BoildWater();
 }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            // 为什么在此处不能引用实例方法
            GreetPeople("zll", EnglishGreeting);
            GreetPeople("周梁亮", ChineseGreeting);

            //GreetingDelegate delegate1, delegate2;
            //delegate1 = EnglishGreeting;
            //delegate1 += ChineseGreeting;
            GreetingDelegate delegate1 = new GreetingDelegate(EnglishGreeting);
            delegate1 += ChineseGreeting;
            //delegate2 = ChineseGreeting;
            //GreetPeople("zll", delegate1);
            //GreetPeople("周梁亮", delegate1);
            //delegate1("zll");
            GreetPeople("zll", delegate1);

            delegate1 -= ChineseGreeting;
            GreetPeople("zll", delegate1);
            // 使用委托可以将多个方法绑定到同一个委托变量,当调用此变量,可以依次调用
            // 所有绑定的方法,返回最后一个方法的结果。
            // delegate2("周梁亮");
            //委托就相当于是一种类型,可以进行复制,只是可以将方法复制给委托
            // 多个方法绑定委托。
            GreetingManager gm = new GreetingManager();
            // gm.MakeGreet = EnglishGreeting;
            // 事件“BoWenXuexiDelegate.GreetingManager.MakeGreet”
            // 只能出现在 += 或 -= 的左边(从类型“BoWenXuexiDelegate.GreetingManager”中使用时除外)
            gm.MakeGreet += ChineseGreeting;
            gm.GreetPeople("zll and zyd");

            Heater ht = new Heater();
            Alarm alarm = new Alarm();
            ht.BoilEvent += alarm.MakeAlert;
            ht.BoilEvent += (new Alarm()).MakeAlert;
            ht.BoilEvent += Display.ShowMsg;
            ht.BoilWater();

        }