C# 回调函数
方式一:Action 无返回值泛型
参考:https://www.cnblogs.com/kybs0/p/10766329.html
方式二:Func 有返回值泛型
参考:https://www.cnblogs.com/kybs0/p/10766329.html
方式三:实例泛型
方案一、适用HTTP请求回调
//定义委托 public delegate void FuncEventHandler(int error, string info, string data); //定义委托方法 public void OnRecord(int error, string info, string data, FuncEventHandler callback) { callback(error, info, data); } //委托实现 public static void Callback(int error, string info, string data) { Console.Write(data); } //委托调用 public MainWindow() { InitializeComponent(); //调用一 OnRecord(-1, "信息内容", "数据内容", Callback); //调用二 OnRecord((a, b, c) => { }); }
方案二、适用SOCKET请求回调
//存储委托 public Dictionary<string, FuncEventHandler> dic = new Dictionary<string, FuncEventHandler>(); //定义委托 public delegate void FuncEventHandler(int error, string info, string data); //委托实现 public static void Callback(int error, string info, string data) { Console.Write(data); } public MainWindow() { InitializeComponent(); //存储指定方法 dic.Add("a", Callback); //存储匿名方法 dic.Add("b", (a, b, c) => { }); //委托调用 dic["a"](-1, "信息内容", "数据内容"); }