C# 委托使用举例

发表于:2014-10-11 09:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:marshal-m    来源:51Testing软件测试网采编

  委托允许用户将自己的方法与委托实例关联起来,从而在委托被调用时执行自己的方法。常被用来作为回调函数、固定逻辑中的可变处理过程方法。
  1. 委托实现回调函数举例
//define callback delegate
public delegate void CallBack(string result);
//process method
public void Processer(string args, CallBack resultHandle)
{
//get result...
string result = "args is" + args;
//handle the result
resultHandle(result);
}
//handel the result
public void DisplayResult(string result)
{
Console.WriteLine(result);
}
//callback delegate example
public void Main()
{
Processer("待处理数据", new CallBack(DisplayResult));
}
  本例中包含四个简单的步骤:
  1. 定义了委托CallBack,用于包装一个方法作为回调函数。
  2. 定义了一个处理方法Processer,代表一个处理过程。该处理过程第一个参数是要处理的数据,第二个参数是用于接收处理结果的回调函数。
  3. 定义回调的具体方法DisplayResult,该方法参数和返回值要与委托CallBack保持一致。
  4. 定义具体的应用代码Main,该方法调用处理过程Processer,让其处理“待处理数据”,并将处理结果交给委托对象 new CallBack(DisplayResult),这样DisplayResult包装在委托对象中,传递给了Processer的回调参数resultHandle。在Precesser处理完成之后,调用resultHandle(result);此时委托对象就委托DisplayResult方法来完成结果的显示工作
  当然,如果将委托中包装的方法换成一个新方法PrintResult,也可以实现将处理结果通过打印机打印出来。这就是一个委托做回调的简单应用。确实很有魅力
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号