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

方法一:

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("白猫发现老鼠了");
          }
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值