using System;
namespace CallbackExample
{
class Program
{
// 定义一个委托,用于表示回调函数的签名
public delegate void CallbackDelegate(string message);
static void Main(string[] args)
{
// 创建一个回调函数实例
CallbackDelegate callback = new CallbackDelegate(PrintMessage);
// 调用带有回调的方法
DoSomethingWithCallback(callback);
Console.ReadLine();
}
// 一个简单的任务方法,完成后调用传入的回调函数
static void DoSomethingWithCallback(CallbackDelegate callback)
{
Console.WriteLine("开始执行任务...");
// 模拟一些处理时间
System.Threading.Thread.Sleep(2000);
Console.WriteLine("任务完成.");
// 调用回调函数
if (callback != null)
{
callback("这是来自DoSomethingWithCallback的回调消息");
}
}
// 回调函数的实现
static void PrintMessage(string message)
{
Console.WriteLine("接收到回调消息: " + message);
}
}
}
CallbackDelegate
是一个委托类型,它定义了回调函数的签名。这里我们定义了一个返回类型为 void
并接收一个 string
参数的委托。PrintMessage
是一个实现了 CallbackDelegate
委托签名的方法,它会在回调时被调用。DoSomethingWithCallback
方法模拟了一个耗时的任务,并在任务完成后调用了传入的回调函数。Main
方法中,我们创建了一个 CallbackDelegate
实例并传递给 DoSomethingWithCallback
方法。这个示例展示了如何在 C# 中使用回调机制来处理异步或耗时操作的结果。
上一篇:c# 读取文件内容
下一篇:c# 输出
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站