C#自定义处理事件(作者还没完全理解事件和委托,所以有可能错漏百出)

1.C#的处理事件整个框架,其实就是观察者模式的一种应用

       观察者模式:老师监视学生考试,学生若作弊,老师立即打人

2.涉及的元素:

   所以必须涉及两个对象事件引发者(触发)--学生;事件处理者--老师

   同时涉及两个事件触发事件--作弊;处理事件--打人

 

3.学生类

     //其实Cheating就是一个委托,而委托就是一组函数的集合,函数类(汗!!委托 这名字起得太烂了)

     public event EventHandler Cheating;//这个事件是学生引发的,所以事件应该写在学生类里

  

     //触发事件,要跟定义事件在同一个类中(只要调用了这个方法,就会出发整个事件的进行,监听->满足条件->动作)

     public void Testing(){

           //...

           if(Cheating!=null)//不为null表示有其他对象在监听他

                   Cheating(this,new EventArgs());//都说了,委托实质就是方法,委托的参数固定为两个:第一个问触发者object;第二个为参数EventArgs

   

 

4.老师类

       Student _student = new Student();//老师监视学生,所以把学生写成老师的成员变量,组合

         _student.Cheating += new EventHandler(SlapStudent);//给学生绑定作弊事件,同时绑定老师发现作弊后的动作函数

 

 

      //处理事件当然得写在 监视者(观察者)里

      public void SlapStudent(object sender,EventArgs e){

            //给学生一个打耳光

      }

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值