C#编程技术基础 教学课件 ppt 作者 武汉厚溥教育科技有限公司 6_第六章-事件处理

上传人:E**** 文档编号:89494181 上传时间:2019-05-25 格式:PPTX 页数:16 大小:221.71KB
返回 下载 相关 举报
C#编程技术基础 教学课件 ppt 作者 武汉厚溥教育科技有限公司 6_第六章-事件处理_第1页
第1页 / 共16页
C#编程技术基础 教学课件 ppt 作者 武汉厚溥教育科技有限公司 6_第六章-事件处理_第2页
第2页 / 共16页
C#编程技术基础 教学课件 ppt 作者 武汉厚溥教育科技有限公司 6_第六章-事件处理_第3页
第3页 / 共16页
C#编程技术基础 教学课件 ppt 作者 武汉厚溥教育科技有限公司 6_第六章-事件处理_第4页
第4页 / 共16页
C#编程技术基础 教学课件 ppt 作者 武汉厚溥教育科技有限公司 6_第六章-事件处理_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《C#编程技术基础 教学课件 ppt 作者 武汉厚溥教育科技有限公司 6_第六章-事件处理》由会员分享,可在线阅读,更多相关《C#编程技术基础 教学课件 ppt 作者 武汉厚溥教育科技有限公司 6_第六章-事件处理(16页珍藏版)》请在金锄头文库上搜索。

1、第三章,C#事件处理,结构体创建时不需要使用new关键字,而且结构体不能有无参构造方法 熟练掌握属性的定义,理解set块和get块的作用 理解索引器的定义和使用 掌握静态类的定义,只能包含静态成员 创建类图查看类的构成和类之间的关系,回顾,理解并使用委托 掌握匿名方法的使用 理解C#事件处理机制 了解自定义事件的流程,本章目标,委托2-1,委托具有以下特点: 委托类似于 C+ 函数指针,但它是类型安全的。 委托允许将方法作为参数进行传递。 委托可用于定义回调方法。 委托可以链接在一起;例如,可以对一个事件调用多个方法。,委托2-2,Multiply(int,int) . Divide(int,

2、int) . ,在运行时确定调用哪种方法,委托和方法必须具有相同的签名,- public delegate int Call(int num1, int num2); -,定义委托 2-1,访问修饰符 delegate 返回类型 委托名();,语法,public delegate int Callback(int num1,int num2); class Delegates public int Plus(int number1,int number2) / 实现 public int Minus(int number1, int number2) / 实现 class TestDelega

3、tes static void Main() Callback objCall; MathCalc mc = new MathCalc(); objCall = new Callback(mc.Plus); ,将方法与委托关联起来,定义委托 2-2,/ 委托定义 public delegate int Callback(int num1,int num2); class MathCalc / 加法方法 public int Plus(int number1,int number2) return number1 + number2; / 减法方法 public int Minus(int nu

4、mber1, int number2) return number1 - number2; ,static void Main(string args) / 委托的对象 Callback objCall; / MathCalc 类的对象 MathCalc mc = new MathCalc(); / 将方法与委托关联起来 objCall = new Callback(mc.Plus); / 将委托实例化 result = objCall(1, 2); System.Console.WriteLine(“结果为 0“, result); ,将方法与委托关联起来,匿名方法,问题:委托能够正常调用,

5、必须创建单独的方法 。要将代码块传递为委托参数,以减少了实例化委托所需的编码系统开销,如何实现?,匿名方法,语法,使用匿名方法,class Program delegate int delSum (int num1,int num2); static void Main(string args) int third = 10; delSum deladd = delegate(int first,int second) int sum = first + second; return sum; ; int total = deladd(10, 20) + third; /调用委托 Consol

6、e.WriteLine(“102030“ + total); ,定义委托,将代码块传递为委托参数,如果使用匿名方法,则不必创建单独的方法,因此减少了实例化委托所需的编码系统开销。,什么是事件,“开始上课 ”,集中注意力听课,其他班同学,事件源,事件的发布者,事件的订阅人,不关心,未订阅该事件,定义事件 为对象订阅该事件 将发生的事件通知给订阅人,定义事件,访问修饰符 event 委托名 事件名;,语法,public delegate void delListener( ) ; public event delListener eventListener ;,订阅事件,/对象stu1订阅了事件e

7、ventListener eventListener += new delListener(stu1.Method1) ; /对象stu2也订阅了事件eventListener eventListener += new delListener(stu2.Method2) ;,通知订阅对象,if(eventListener != null) eventListener( ); ,调用订阅特定事件的对象的所有委托,教员演示:自定义事件实例,带参数事件,访问修饰符 返回值类型 事件处理方法名(object source,EventArgs e);,语法,系统内置的EventArgs定义了很多常用事件,委托包含对方法的引用,通过委托可以调用某个方法 匿名方法只是少了方法名,编译器会根据匿名方法自动添加相应的静态或实例方法 C#中的事件允许一个对象将消息通知其它的对象 事件参数类需继承自EventArgs类,总结,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号