码迷,mamicode.com
首页 > Windows程序 > 详细

C# 委托

时间:2015-04-10 12:53:04      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

首先创建一个很简单的委托~
public delegate void DoIt(string str);
然后创建一个委托引用~

public DoIt _DoIt;

之后就是在你程序需要触发回调函数的地方去执行这个委托~

if (_DoIt != null) //执行委托需要判断是否为空,如果没有将对应签名的方法存入委托,直接执行会报错
{
_DoIt("测试");
}
最后就是去为委托添加回调方法,签名必须一样~
_DoIt = (str) => //这里是一个匿名函数,当然也可以直接传方法
{
//这里就是委托触发时执行的代码

};
唔~看不懂请追问~

========================================================================
C# 里面这个东西一般指某个委托.其实也可以是接口.

delegate void WorkDone();
void Working(WorkDone callBack){
//Working code.
//当工作完成的时候执行这个委托.
callBack();
}
void WorkDoneHandler(){
//Do something other.
}
void Do(){
WorkDone callBack = new WorkDone(WorkDoneHandler);
Working(callBack);
}

也就是相当把某个方法(WorkDoneHandler())当作参数传递给另外一个方法(Working(WorkDone callBack)).
这样做的好处在于,可以动态的指定执行哪个方法.
比如在Do()方法中,我们指定的callback 是WorkDoneHandler 当然也可以是其它匹配的方法. 而Working()方法 更本不需要知道自己最后执行的是哪个Handler.

C# 委托

标签:

原文地址:http://www.cnblogs.com/aiqingqing/p/4413971.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!