c#跨类实现委托回调函数
时间: 2024-03-30 21:31:22 浏览: 117
在C#中,委托是一种类型,它可以用于引用方法。委托可以用于跨类实现回调函数的功能。下面是C#中跨类实现委托回调函数的步骤:
1. 定义委托类型:首先需要定义一个委托类型,该委托类型指定了回调函数的签名(参数和返回值类型)。可以使用`delegate`关键字来定义委托类型。
2. 创建委托实例:在需要使用回调函数的类中,创建一个委托实例,并将其初始化为指向回调函数的方法。
3. 注册回调函数:将委托实例注册到其他类中的某个方法上,以便在特定事件发生时调用该方法。
4. 触发回调:当满足触发条件时,通过调用委托实例来触发回调函数。
下面是一个简单的示例代码,演示了如何在C#中跨类实现委托回调函数:
```csharp
// 定义委托类型
delegate void MyDelegate(string message);
// 回调函数的类
class CallbackClass
{
// 回调函数
public void CallbackMethod(string message)
{
Console.WriteLine("CallbackMethod: " + message);
}
}
// 使用回调函数的类
class CallerClass
{
// 委托实例
private MyDelegate myDelegate;
// 注册回调函数
public void RegisterCallback(MyDelegate callback)
{
myDelegate += callback;
}
// 触发回调
public void TriggerCallback(string message)
{
myDelegate?.Invoke(message);
}
}
// 测试代码
class Program
{
static void Main(string[] args)
{
CallbackClass callbackObj = new CallbackClass();
CallerClass callerObj = new CallerClass();
// 注册回调函数
callerObj.RegisterCallback(callbackObj.CallbackMethod);
// 触发回调
callerObj.TriggerCallback("Hello World");
}
}
```
在上面的示例中,`CallbackClass`是包含回调函数的类,`CallerClass`是使用回调函数的类。通过将`callbackObj.CallbackMethod`方法注册到`callerObj`的委托实例中,当调用`callerObj.TriggerCallback`方法时,会触发回调函数的执行。
阅读全文