当前位置: 北大青鸟学士后主页 > 在线教程 > .net > -> 文章内容

C#中的事件

发布: 2011-02-22 22:14 | 来源: 未知 | 编辑:北大青鸟学士后 | 查看: 次 |

  事件只是用来通知一个行为已经发生的信息。在ObjectARX中,我们使用反应器(reactor)来处理AutoCAD的事件。而在AutoCAD .NET API中,ObjectARX反应器被换成了事件。事件处理函数(或者叫回调函数)是用来监视和反馈程序中出现的事件。事件可以以不同的形式出现。

  在介绍AutoCAD .NET API中的事件之前,让我们先来简单地了解一下代理。

  第1a部分  代理

  代理是一个存储方法索引的类(概念与函数指针类似)。代理对方法是类型安全的(与C中的函数指针类似)。代理有特定的形式和返回类型。代理可以封装符合这种特定形式的任何方法。

  代理的一个用途就是作为产生事件的类的分发器。事件是.NET环境中第一级别的对象。虽然C#把事件处理的许多细节给隐藏掉了,但事件总是由代理来实现的。事件代理可以多次调用(就是它们可以存储多于1个的事件处理方法的索引)。它们保存了用于事件的一个注册事件处理的列表。一个典型的代理有以下的形式:

  public delegate Event (Object sender, EventArgs e)

  第一个参数sender表示引发事件的对象。第二个参数e是一个EventArgs参数(或者是一个派生的类),这个对象通常包含用于事件处理函数的数据。

  第1b部分 +=和-=语句

  要使用事件处理函数,我们必须把它与事件联系起来。这要通过使用+=语句。+=和-=允许你在运行时连接、断开或修改与事件联系的处理函数。

  当我们使用+=语句时,我们要确定事件引发者的名字,并要使用new语句来确定事件处理函数,例如:

  MyClass1.AnEvent += new HandlerDelegate(EHandler)

  前面我们说过要使用-=语句从事件处理函数中断开事件(移除联系)。语法如下所示:

  MyClass1.AnEvent -= new HandlerDelegate(EHandler)

温馨提示:如果您对北大青鸟的学费、专业设置、就业推荐有任何疑问,可以咨询"400-9679-776"与老师沟通!
相关阅读:
  北大青鸟开班信息

11月05日 S1脱产 热招
11月10日 S1脱产 热招
11月12日 S1脱产 热招
11月17日 S1脱产 热招
11月22日 S1业余 热招
订座,报名

  北大青鸟在线报名
   姓 名:  *
 联系电话:  *
 qq:  *
 验证码:
E-mail:
 
  北大青鸟免费讲座
讲座日期: 本周六 点击抢座
讲座时间: 下午1点30分
讲座地点: 北大青鸟华腾校区
主讲老师: 王老师 金牌讲师
讲座主题: 网络安全
讲座内容: 检测、防御、黑客信息,如何过滤不安全的网站,如何防御黑客的进攻。
订座电话: 010-82462067/2167