网络编程回调是一种处理异步操作和事件驱动情况的编程模式。在回调中,一个函数(称为回调函数)作为参数传递给另一个函数(称为调用函数或主函数)。当调用函数中的特定事件发生或某个条件满足时,回调函数被自动调用。这样,我们可以在操作完成时执行特定的代码逻辑,例如处理返回的数据或错误处理。
```csharp
using System;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// 创建一个回调方法
Action { Console.WriteLine($"回调函数执行, 结果为: {result}"); }; // 调用异步网络请求方法,并传递回调方法 await MakeRequestAsync("http://example.com", callback); } static async Task MakeRequestAsync(string url, Action { using (HttpClient client = new HttpClient()) { try { // 发起异步请求 HttpResponseMessage response = await client.GetAsync(url); response.EnsureSuccessStatusCode(); string responseBody = await response.Content.ReadAsStringAsync(); // 在请求完成后调用回调方法 callback(responseBody); } catch (Exception ex) { // 在发生错误时调用回调方法 callback($"请求失败: {ex.Message}"); } } } } ``` 在这个示例中,我们定义了一个名为`callback`的回调方法,它接受一个字符串参数并在控制台中打印结果。然后,我们调用`MakeRequestAsync`方法,并将`callback`方法作为参数传递给它。`MakeRequestAsync`方法使用`HttpClient`发起异步HTTP请求,并在请求成功或失败时调用回调方法。 这种回调模式使得网络编程更加灵活和高效,因为它允许我们在操作完成时立即执行代码,而不需要等待操作完成。此外,回调还可以用于实现事件驱动的编程模式,使程序能够更加灵活地响应各种事件。