C#使用程序案例说明回调函数的应用
时间: 2023-08-07 16:03:48 浏览: 114
以下是一个简单的C#程序案例,演示了回调函数的应用。假设我们有一个计算器类 Calculator,其中包含一个 Add 方法用于计算两个整数的和。我们还有一个 Logger 类,用于将计算结果记录到日志文件中。
```csharp
using System;
// 定义委托类型
delegate void LogCallback(string message);
// 计算器类
class Calculator
{
// 回调函数作为参数
public void Add(int a, int b, LogCallback callback)
{
int result = a + b;
callback($"计算结果:{result}");
}
}
// 日志记录器类
class Logger
{
public void Log(string message)
{
Console.WriteLine($"记录日志:{message}");
}
}
class Program
{
static void Main(string[] args)
{
Calculator calculator = new Calculator();
Logger logger = new Logger();
// 创建回调函数实例
LogCallback callback = new LogCallback(logger.Log);
// 调用计算器的 Add 方法,并传递回调函数
calculator.Add(10, 20, callback);
Console.ReadLine();
}
}
```
在上述示例中,我们定义了一个委托类型 LogCallback,它接受一个字符串参数。Calculator 类的 Add 方法接受两个整数参数和一个回调函数作为参数,计算结果后调用回调函数将结果传递给 Logger 类的 Log 方法进行记录。
在 Main 方法中,我们创建了 Calculator 和 Logger 的实例,并通过委托类型创建了回调函数的实例。然后,我们调用计算器的 Add 方法,传递参数和回调函数实例。
当 Add 方法完成计算后,会调用回调函数,将计算结果作为参数传递给 Logger 类的 Log 方法,最后在控制台中输出日志信息。
这个示例展示了回调函数的一种应用场景,通过回调函数可以实现计算器和日志记录器之间的解耦,使得它们可以独立地进行功能扩展。
阅读全文