请用C#写一个回调函数的例子
时间: 2024-11-20 10:39:44 浏览: 23
在C#中,回调函数是一种设计模式,它允许你将一个方法作为参数传递给另一个方法,在适当的时候由后者调用。这种技术常用于异步操作、事件处理、委托等场景。下面是一个简单的例子,演示了如何创建和使用回调函数:
```csharp
using System;
// 定义一个接口,表示可以执行的任务
public interface ICallback
{
void OnCompletion();
}
// 父类,包含一个需要回调的方法
public class ParentClass
{
public void PerformTask(ICallback callback)
{
// 模拟耗时操作
Console.WriteLine("Performing task...");
Task.Delay(2000).ContinueWith(task =>
{
Console.WriteLine("Task completed.");
callback.OnCompletion(); // 调用回调
});
}
}
// 子类实现ICallback接口
public class ChildClass : ICallback
{
public void OnCompletion()
{
Console.WriteLine("Child class received the completion notification.");
}
}
public class Program
{
public static void Main(string[] args)
{
ParentClass parent = new ParentClass();
ChildClass child = new ChildClass();
// 使用回调函数
parent.PerformTask(child);
}
}
```
在这个例子中,`ParentClass`有一个方法`PerformTask`,它接受一个`ICallback`类型的参数。当任务完成时,它会调用这个回调方法。然后我们在`ChildClass`中实现了`ICallback`,当接到通知时执行相应的操作。
阅读全文