读C#委托与事件笔记

  事件是一种固定格式的委托。
  关于事件处理机制:
事件包含:编写发布者类(事件源, 必须有一个引发事件)、编写订阅者类、订阅者对事件的处理(事件处理方法)、事件绑定事件处理方法
比如教师上课这个例子:
发布者类:教师(引发事件为开始上课)
        订阅者类:学生
        订阅者对事件的处理:1,听课   2,做笔记   3,看书               
在编写事件前要先编写一个类封装要传递给订阅者的数据 
public class StartEventArgs : EventArgs
=    {   
            //翻开第几页
            public readonly int page;
            public StartEventArgs(int page)
            {
                this.page = page;
            }
        }




关于教师类:
public class Teacher
        {
   //保存老师名字,用来测试传递给订阅者
     public string TName;
            //声明委托
            public delegate void startEventHandler(Object sender, StartEventArgs e);
            //声明事件
            public event startEventHandler start;
            //引发事件
            public void StartEvent(StartEventArgs e)
            {
                if (start != null)
                    start(this, e);
            }
   public void Start()
           {
StartEventArgs e=new StartEventArgs(page);
StartEvent(e);
           }
关于学生类:(可以分开3个类来写)
 public class Student
     {
            public void Listener(Object sender, StartEventArgs e) 
  { 
Teacher teacher=(Teacher)sender;
Console.WriteLine("授课老师为{0}",teacher.TName);
Console.WriteLine("正在听课,翻开{0}页",e.page); 
  }
            public void Record(Object sender, StartEventArgs e) 
  {
//与上面一样,省略
Console.WriteLine("正在做笔记,翻开{0}页",e.page); 
  }
            public void Reading(Object sender, StartEventArgs e) 
          {
//与上面一样,省略
  Console.WriteLine("正在看书,翻开{0}页",e.page); 
}
       }
最后是为事件绑定事件处理的方法(即上方的 Listener(),Record(),Reading()方法 )
static void Main(string[] args)
            {
                Teacher teacher=new Teacher();
//用匿名对象注册方法
teacher.start+=(new Student()).Listener;
teacher.start+=(new Student()).Record;
teacher.start+=(new Student()).Reading;
//调用引发事件
teacher.Start();
Console.ReadKey();
            }





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值