|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
在学习一门语言的时候,假如没有对它的事件处理机制有很好的了解的话,是不算学好了的。我学java和C# 也有一段时间了。在它们过多的相似甚至一样的地方,忽然出现一个大相径庭的事件处理机制。于是想和大家分享一下自己的看法。 java中采取的是面向对象的机制。C#中沿袭了C/C++中的函数回调机制。 如在java中,要实现自定义事件处理,必须经过如下的步骤: 1 开发自定义事件类。 2 定义监听者接口。 3 定义事件激发者的接口。 public void add监听者(监听者); public void remove监听者(监听者); protected void process事件(事件); 4 实现事件激发者. 5 实现监听这接口。 而在C#中: 1 定义一个事件代理: 2 定义事件; 3 事件处理函数。 java中的事件机制是很好理解的。当一个事件激发事,就调用process事件方式。这个事件方式会将所有的监听者一一执行它监听该事件的接口。(假如消息不消费,答应传递的话。)当然这也不是必须的,因为process方式是自己写的,可以自行决定它执行的动作。 在C#中就简化了自己写process事件方式的工作。但是也因此搞得事件处理机制很难理解,咋一看还蛮神乎其神的。实际上就是C/C++中的回调机制。它的做法是把监听函数挂接在事件代理链上面。事件触发时将事件代理链上的函数一个个顺序执行。(假如消息不消费,答应传递的话。) [待续] 返回类别: 教程 上一教程: Java中利用JMF编写摄像头拍照程序 下一教程: Eclipse方法: Processes that Adapt (part I) 您可以阅读与"java和C#事件处理机制"相关的教程: · 关于java非常处理机制的深入理解 · "Java中可复用事件处理的设计与实现"代码 · 为您的Java应用程序添加退出事件处理 · Java事件处理与发送 · 使用JAVABEAN高效处理JSP |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |