自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解什么是C#回調(diào)

開發(fā) 后端
什么是C#回調(diào)?有人這么說:“發(fā)布者說,當我遇到什么事的時候,我就通知大家,有需要通知的就把電話號碼給我,等那件事發(fā)生時,我就打電話通知大家?!倍谶@篇文章中則詳細介紹了什么是回調(diào)函數(shù)以及回調(diào)函數(shù)的機制

1.什么是回調(diào)函數(shù)

回調(diào)函數(shù)(callbackFunction),顧名思義,用于回調(diào)的函數(shù)?;卣{(diào)函數(shù)只是一個功能片段,由用戶按照回調(diào)函數(shù)調(diào)用約定來實現(xiàn)的一個函數(shù)?;卣{(diào)函數(shù)是一個工作流的一部分,由工作流來決定函數(shù)的調(diào)用(回調(diào))時機。回調(diào)函數(shù)包含下面幾個特性:

屬于工作流的一個部分;

必須按照工作流指定的調(diào)用約定來申明(定義);

他的調(diào)用時機由工作流決定,回調(diào)函數(shù)的實現(xiàn)者不能直接調(diào)用回調(diào)函數(shù)來實現(xiàn)工作流的功能;

2.C#回調(diào)機制

C#回調(diào)機制是一種常見的設(shè)計模型,他把工作流內(nèi)的某個功能,按照約定的接口暴露給外部使用者,為外部使用者提供數(shù)據(jù),或要求外部使用者提供數(shù)據(jù)。

回調(diào)機制圖

如上圖所示,工作流提供了兩個對外接口(獲取參數(shù)、顯示結(jié)果),以回調(diào)函數(shù)的形式實現(xiàn)。

“獲取參數(shù)”回調(diào)函數(shù),需要工作流使用者設(shè)定工作流計算需要的參數(shù)。

“顯示結(jié)果”回調(diào)函數(shù),提供計算結(jié)果給工作流使用者。

3.C#回調(diào)機制應(yīng)用

使用回調(diào)機制,可以為工作流實現(xiàn)擴展??梢园压ぷ髁髦行枰脩舾深A(yù)的,或需要提供給用戶的數(shù)據(jù)以回調(diào)的模式提供給用戶。而用戶不需要知道整個工作的流程,只需知道回調(diào)函數(shù)的說明就可以使用工作流模塊提供的功能,這對信息的隱藏也是有作用的。

4.回調(diào)機制的實現(xiàn)形式

回調(diào)函數(shù)

虛擬函數(shù)

事件

example:以虛函數(shù)實現(xiàn)回調(diào)機制(有時間補充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. //調(diào)用處理數(shù)據(jù)  
  19. Handle(a,b);  
  20. //報告結(jié)果  
  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#回調(diào)

【編輯推薦】

  1. C#參數(shù)類型學(xué)習(xí)筆記
  2. 處理C#消息的方法
  3. C#重載LoadPostData方法
  4. 概述C#復(fù)合控件構(gòu)建
  5. C# JavaScript函數(shù)使用
責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2009-08-12 10:11:18

C# 回調(diào)函數(shù)

2009-08-19 17:10:09

C#回調(diào)函數(shù)

2009-07-31 16:25:29

C#回調(diào)函數(shù)API應(yīng)用

2021-12-07 00:10:25

C# 微信支付

2009-09-01 17:51:47

C#拆箱C#裝箱

2009-08-28 12:19:19

C#靜態(tài)方法

2011-06-15 11:05:14

C語言回調(diào)函數(shù)

2009-08-14 17:09:48

C#引用類型

2009-08-24 11:23:41

C# TimeLabe

2009-09-07 16:13:56

C# MessageB

2009-07-30 18:20:21

C#繼承

2009-09-01 16:07:04

C#命名規(guī)約

2010-02-04 16:07:39

C++回調(diào)函數(shù)

2009-08-06 17:31:46

C#制作屏幕保護

2009-09-04 14:14:55

C#文檔

2009-09-02 09:24:03

C# this關(guān)鍵字

2009-09-02 13:15:23

C#數(shù)組復(fù)制

2009-08-27 14:29:15

C# explicti

2009-09-01 10:37:51

C#項目代碼C#代碼規(guī)范

2009-08-03 13:13:52

C#調(diào)用Outlook
點贊
收藏

51CTO技術(shù)棧公眾號