详解什么是C 详解什么叫朱文白文阴文阳文
创始人
2024-05-02 00:11:38
0

1.什么是回调函数

回调函数(callbackFunction),顾名思义,用于回调的函数。回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数。回调函数是一个工作流的一部分,由工作流来决定函数的调用(回调)时机。回调函数包含下面几个特性:

属于工作流的一个部分;

必须按照工作流指定的调用约定来申明(定义);

他的调用时机由工作流决定,回调函数的实现者不能直接调用回调函数来实现工作流的功能;

2.C#回调机制

C#回调机制是一种常见的设计模型,他把工作流内的某个功能,按照约定的接口暴露给外部使用者,为外部使用者提供数据,或要求外部使用者提供数据。

回调机制图

如上图所示,工作流提供了两个对外接口(获取参数、显示结果),以回调函数的形式实现。

“获取参数”回调函数,需要工作流使用者设定工作流计算需要的参数。

“显示结果”回调函数,提供计算结果给工作流使用者。

3.C#回调机制应用

使用回调机制,可以为工作流实现扩展。可以把工作流中需要用户干预的,或需要提供给用户的数据以回调的模式提供给用户。而用户不需要知道整个工作的流程,只需知道回调函数的说明就可以使用工作流模块提供的功能,这对信息的隐藏也是有作用的。

4.回调机制的实现形式

回调函数

虚拟函数

事件

example:以虚函数实现回调机制(有时间补充C#版本)

  1. Code  
  2. classCWorkFlow  
  3. {  
  4. voidinit()  
  5. {  
  6. _a=0;  
  7. _b=0;  
  8. }  
  9.  
  10. int_a;  
  11. int_b;  
  12. public:  
  13.  
  14. voidStart()  
  15. {  
  16. //初始化  
  17. init();  
  18. //调用处理数据  
  19. Handle(a,b);  
  20. //报告结果  
  21. Report(a,b);  
  22. }  
  23.  
  24. virtualvoidHandle(int&a,int&b)=0;  
  25. virtualvoidReport(intiRet)=0;  
  26. };  
  27.  
  28.  
  29. classCMain:  
  30. publicCWorkFlow  
  31. {  
  32. public:  
  33. voidHandle(int&a,int&b)  
  34. {  
  35. a=a+b/2;  
  36. }  
  37.  
  38. voidReport(intiRet)  
  39. {  
  40. printf("iRet=%d\n",iRet);  
  41. }  
  42. };  
  43.  
  44. //application  
  45.  
  46. intmain()  
  47. {  
  48. CMainmain;  
  49. main.Start();  

本文来自王之永博客园博文《C#回调

【编辑推荐】

  1. C#参数类型学习笔记
  2. 处理C#消息的方法
  3. C#重载LoadPostData方法
  4. 概述C#复合控件构建
  5. C# JavaScript函数使用

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...