I just met you,
And this is crazy,
But here’s my number (delegate),
So if something happens (event),
Call me, maybe (callback)?
C# 中的回调用委托实现;通常配合事件一起使用,因为事件能自动激活附加在它上的委托(event handlers)。
将回调作为自定义排序方法
public delegate void Callback(string message);
public static void DelegateMethod(string message)
=> Console.WriteLine(message);
Callback handler = DelegateMethod;
//定义
public static void MethodWithCallback(int param1, int param2, Callback callback)
{
callback("The number is: " + (param1 + param2).ToString());
}
//传递上面写的 handler 委托
MethodWithCallback(1, 2, handler);
//控制台输出
The number is: 3
以抽象方式使用委托时,MethodWithCallback
不需要直接调用控制台——它在设计时根本不必考虑控制台。它只是简单地准备了字符串并将字符串传递给其他方法。由于委托化的方法可以使用任意数量的参数,此功能特别强大。