编程程序实现委托,事件。

方法一:

static voidMain(string[] args)

        {   

            Cat cat = new Cat();    

            Mouse mouse = new Mouse();

            Master master = new Master();

            cat.Calling += new EventHandler(mouse.Escape);

            cat.Calling += new EventHandler(master.Wakened);

            cat.Call();

            Console.ReadLine();

        }

    }

      public sealed class Cat//猫类

       {public event EventHandler Calling;

            public void Call()

              { Console.WriteLine("猫开始叫了……");

                  if(Calling!=null)  //检查事件是否被注册

                  Calling(this,EventArgs.Empty);//调用事件注册的方法

              }

      }

         public sealed class Mouse//老鼠类

           {

              public void Escape(object sender,EventArgs e)

                 {

                     Console.WriteLine("老鼠逃跑了...");

                 }

           }

         public sealed class Master //主人

          {

             public void Wakened(object sender,EventArgs e)

             {  

              Console.WriteLine("主人惊醒了...");   

                         }

               编程程序实现委托,事件。

        //方法二:
//重新事件参数,添加我们想要的功能
    public class CatEventArgs : EventArgs
    {
        //添加一个猫叫的原因的功能
        public string reason { get; set; }
    }
    public class Cat
    {
        public string name { get; set; }
        //定义一个猫叫的事件
        public event EventHandler CatMao;
        //猫叫了
        public void Miao(string reson)
        {
            CatEventArgs cea = new CatEventArgs();
            cea.reason = reson;
            //执行事件
            CatMao(this, cea);
        }
    }
    class Program_Event
    {
        static void Main(string[] args)
        {
            Cat cat = new Cat();
            cat.name = "白猫";
            cat.CatMao += cat_CatMao;
           //猫叫了,才能触发猫叫的事件
            cat.Miao("白猫发现老鼠了");
            Cat wcat = new Cat();
            wcat.name = "老鼠";
            wcat.CatMao += wcat_CatMao;
            //老鼠逃了,才能触发猫叫的事件
            wcat.Miao("");
            Console.ReadLine();
        }
        
        //老鼠叫的事件
        private static void wcat_CatMao(object sender, EventArgs e)
        {
            Console.WriteLine("老鼠看到了白猫");
            Console.WriteLine("老鼠逃了");
        }
        //白猫叫的事件
        private static void cat_CatMao(object sender, EventArgs e)
        {
            Cat cat = (Cat)sender;
            CatEventArgs cea = (CatEventArgs)e;
            Console.WriteLine("白猫叫了");
            Console.WriteLine("白猫发现老鼠了");
          }
    }

编程程序实现委托,事件。