网站大量收购闲置独家精品文档,联系QQ:2885784924

接口委托事件异常处.ppt

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
. 委托类型即可以封装一个静态方法,也可以封装一个非静态的方法。委托的使用方法一般分为两个步骤: 1)定义一个委托类型的实例变量,让该实例变量指向某一个具体的方法。 【格式】: 委托类型名 委托变量名=new 委托类型名(方法名); 【功能】: 定义一个委托类型的变量,变量名由“委托变量名”指定,并让该变量指向由“方法名”指定的方法。 2)调用委托类型变量指向的方法。 【格式】: 委托变量名(实参列表); 【功能】:调用由“委托变量名”指定的委托变量所指向的方法。 e5_4.cs using System; delegate void TestDelegate();//定义一个委托类型 class DeleTest { public void Fun1()//定义一个非静态方法 { Console.WriteLine(这是一个非静态方法); } public static void Fun2()//定义一个静态方法 { Console.WriteLine(这是一个静态方法); } } class A { public static void Main() { //产生类DeleTest的一个实例“objDete” DeleTest objDete = new DeleTest(); //产生一个委托类型TestDelegate的实例变量Methods,并让它指向objDete的方法Fun1 TestDelegate Method = new TestDelegate(objDete.Fun1); Method();//调用Method指向的方法,即实例objDete的Fun1方法 //让Method指向类的静态方法Fun2 Method = new TestDelegate(DeleTest.Fun2); Method();//调用Method指向的方法,即类DeteTest的Fun2方法 } } 5.3 事件 在应用程序中,事件是用户某个操作引发的要求程序响应的请求,例如用户单击界面上的按钮,也可以是某个程序发出的希望返回特定数据的请求,如果发出请求者知道调用什么程序来处理,那么就成了普通的函数调用了;但是在异步操作的环境中,发出请求只是要求得到响应和处理,并知道谁来处理,怎么处理。 我们把这样的请求成为事件,发出请求方称为事件发送方,而接收事件并处理事件的程序成为事件的接收方。 显然在发送方和接收方之间必须有媒介传递通知,这个媒介就是委托。 C#是面向对象的语言,发送方、接收方和委托都是对象。委托可以将方法引用封装在委托对象内,然后可以将该委托对象传递给可调用所引用封装在委托对象内,然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。 5.3.1 事件和事件处理的机制 使用事件的大致过程包括以下步骤: 1)创建或声明一个委托。 2)创建一个定义事件的类,应该包含: a、与委托关联的事件。 b、(可选)验证用event关键字声明的委托实例是否已存在的方法。否则,该逻辑必须放置在引发此事 件的代码中。 c、调用此事件的方法。这些方法可以重写一些基类功能。 3)定义一个或多个将方法连接到事件的类。所有这些类都包括: a、使用+=运算符和-=运算符将一个或多个方法与事件关联。 b、此事件关联的方法的定义。 4)使用此事件: a、创建包含事件声明的类对象。 b、使用定义的构造函数,创建包含事件定义的类对象 应该注意,系统中存在许多与定义的事件和委托类型,通常不需要用户自行定义。 5.3.2 事件的声明 事件不是对象,而是对象的成员,应该在类、结构或者接口中声明。 【格式】: 特性 修饰符 event 委托类型 事件名; 说明: 特性和修饰符是可选的 修饰符:abstract、new、override、static、virtual、extern和四个访问控制符之一。 Event:关键字 委托类型是封装了事件处理方法的委托类型 在声明事件的类的外部,对事件的合法操作只有复合的加入操作符+=和移除操作符-=,其他都不适合法的。 5.3.3 事件的注册和移除 事件的注册是把委托和事件发送方关联起来,因为委托封装了事件处理方法,所以事件的注册也就是告诉事件的发送方谁是事件的接收者。 事件注册的格式为: 事件名+=委托对象名; 或 事件名+=new 委托类型名(方法名); 如果要解除委托与事件的关

文档评论(0)

清风老月 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳春市惠兴图文设计有限公司
IP属地广东
统一社会信用代码/组织机构代码
91441781MA53BEWA2D

1亿VIP精品文档

相关文档