C# 回调函数 回调函数 既然是把一个方法让另外一个方法去执行。 那各位大哥,请看。 public void Test(string name){ if(name=="xxoo") { Test2(); };} 那以上代码中的 Test2() 是一个回调函数吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以参考http://www.csharpwin.com/csharpspace/6299r750.shtmlhttp://www.cnblogs.com/birdshover/archive/2008/01/07/1029471.html 不是。 回调的意思是, 把手机号给我。我有事CALL你。 举个例子吧 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. public delegate string ProcessDelegate(string s1, string s2); 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方法调用了一个回调函数。可以看出,可以把任意一个符合这个委托的方法传递进去,意思就是说这部分代码是可变 C#网络编程问题 NTEXT字段的存储过程的问题 DataGridViewComboBoxColumn问题 请教大家关于C#(Winforms)项目打包生成安装程序的问题!有经验的请进来说两句...... C#访问远程机器上的Access数据库?求字符连接串和调用代码?。。。 谁能帮忙吧这个方法改下,把LinQ改成平常的 请教一个在C#中用正则匹配js里变量在("123456")中的值。 .NET Reflector反编译问题 c#界面问题 如何往access数据库插入和取出IMAGE? 请问如何把符合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方法调用了一个回调函数。可以看出,可以把任意一个符合这个委托的方法传递进去,意思就是说这部分代码是可变