回调函数 既然是把一个方法让另外一个方法去执行。
那各位大哥,请看。
public void Test(string name)
{
if(name=="xxoo")
{
Test2();
};
}
那以上代码中的 Test2() 是一个回调函数吗?
那各位大哥,请看。
public void Test(string name)
{
if(name=="xxoo")
{
Test2();
};
}
那以上代码中的 Test2() 是一个回调函数吗?
解决方案 »
- HttpWebRequest 返回http 304错误码,如何处理?
- c# web应用程序中 下拉列表项为化学分子式
- 循环读取数组长度
- 如何向XML寫入信息
- 请问winform的程序中datagridview 的表头能设置背景图片吗?
- 想寫個通過局域網校正系統時間! 有幾個問題請教? 在線刷新等待中.......
- 是否可以通过C#实现更改登陆域的用户及其权限??
- DX 控件的TreeList问题,跪求!!!
- 使用C#做通过串口对MODEM编程实现数据传输,急,请高手赐教,就这些分了。跪谢!!!
- 照搬微软例子也错!!数据绑定。
- 请问如何把符合IEEE754标准的十六进制数组转换为浮点数?
- .net中怎样把字符串拆分为单个字符
http://www.csharpwin.com/csharpspace/6299r750.shtml
http://www.cnblogs.com/birdshover/archive/2008/01/07/1029471.html
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.
class Program
{
static void Main(string[] args)
{
Test t = new Test();
string r1 = t.Process("Text1", "Text2", new ProcessDelegate(t.Process1));
string r2 = t.Process("Text1", "Text2", new ProcessDelegate(t.Process2));
Console.WriteLine(r1);
Console.WriteLine(r2);
}
}
public class Test
{
public string Process(string s1,string s2,ProcessDelegate process)
{
return process(s1, s2);
}
public string Process1(string s1, string s2)
{
return s1 + s2;
} public string Process2(string s1, string s2)
{
return s1 + Environment.NewLine + s2;
} }
}
Process方法调用了一个回调函数。可以看出,可以把任意一个符合这个委托的方法传递进去,意思就是说这部分代码是可变