admin 管理员组文章数量: 1086019
2024年12月26日发(作者:rm文件格式用什么播放器)
详解什么是C#回调
1.什么是回调函数
回调函数(callbackFunction),顾名思义,用于回调的函数。
回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的
一个函数。回调函数是一个工作流的一部分,由工作流来决定函数的
调用(回调)时机。回调函数包含下面几个特性:
属于工作流的一个部分;
必须按照工作流指定的调用约定来申明(定义);
他的调用时机由工作流决定,回调函数的实现者不能直接调用回
调函数来实现工作流的功能;
2.C#回调机制
C#回调机制是一种常见的设计模型,他把工作流内的某个功能,
按照约定的接口暴露给外部使用者,为外部使用者提供数据,或要求
外部使用者提供数据。
如上图所示,工作流提供了两个对外接口(获取参数、显示结
果),以回调函数的形式实现。
“获取参数”回调函数,需要工作流使用者设定工作流计算需要
的参数。
“显示结果”回调函数,提供计算结果给工作流使用者。
3.C#回调机制应用
使用回调机制,可以为工作流实现扩展。可以把工作流中需要用
户干预的,或需要提供给用户的数据以回调的模式提供给用户。而用
户不需要知道整个工作的流程,只需知道回调函数的说明就可以使用
工作流模块提供的功能,这对信息的隐藏也是有作用的。
4.回调机制的实现形式
回调函数
虚拟函数
事件
example:以虚函数实现回调机制(有时间补充C#版本)
class CWorkFlow
{
void init()
{
_a=0;
_b=0;
}
int_a;
int_b;
public:
void Start()
{
//初始化
init();
//调用处理数据
Handle(a,b);
//报告结果
Report(a,b);
}
virtual void Handle(int &a,int &b)=0;
virtual void Report(int iRet)=0;
};
class CMain: public CWorkFlow
{
public:
void Handle(int &a,int &b)
{
a=a+b/2;
}
void Report(int iRet)
{
printf("iRet=%dn",iRet);
}
};
//application
intmain()
{
CMain main;
();
}
版权声明:本文标题:详解什么是C#回调 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1735310748a1646314.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论