您当前的位置: 首页 > 教育培训 >> 校长

进行事件编程的

2021-10-28 05:42:09

你也许使用事件编程已经多年了,但是迁移到.NET框架组件时仍需要重新检查它们的内部工作,因为在.NET框架组件中事件位于委托(delegate)的顶层。你对委托了解得越深,使用事件编程时就越能利用其强大的功能。在使用通用语言运行(common language runtime,CLR)的事件驱动框架(例如Windows Forms或)工作时,了解事件在低层是怎样工作的很重要。本文的目标就是让你了解事件在低层是怎样工作的。

事件到底是什么

事件仅仅是一种软件模式(pattern),在事件中通知源对一个或多个处理方法进行回调(callback)。因此事件与接口(interface)和委托(delegate)相似,因为它们都提供了一条途径来设计使用回调方法的应用程序。但是事件生产率更高,因为它比接口和委托更易使用。事件让编译器和Visual Studio .NET集成开发环境在后台为你做了很多工作。

包含事件的设计是基于一个事件源和一个或多个处理程序的。事件源可以是类或对象,事件处理程序是绑定到某个处理方法的委托对象。图1在较高层次显示了数据源与处理方法的联系。

图1.事件源和处理程序

每个事件都根据特定的委托类型定义。对于每个事件源定义的事件,都有一个基于事件下面的委托类型的专用字段,该字段用于跟踪多点传送的委托对象。事件源也提供了一个公共的注册方法,让你可以注册希望的事件处理程序。

上周张家港东海的远月成交极其引人注目 当你建立一个事件处理程序(一个委托对象)并把它与事件源一起注册时,事件源简单地把新的事件处理程序添加到列表的结尾。接着事件源能使用专用字段调用多点传送委托对象的Invoke方法,该方法将执行所有已注册的事件处理程序。

事件真正好的地方是大多数设置工作已经被开发环境完成。你将看到,Visual Basic .NET编译器帮助你在定义事件时自动的添加一个私有字段和一个公共注册方法。你也会看到Visual Studio .NET通过自动生成处理方法的框架定义的代码生成器为你提供了更多帮助。

怀化哪个医院治疗白癜风最好
银川哪家医院治妇科好
得了卒中高血压怎么办
推荐阅读
图文聚焦