c# delgate invoke
时间: 2024-10-20 09:11:46 浏览: 22
在 C# 中,Delegate 是一种轻量级类型的委托,它封装了对方法的引用。Invoke 方法是 Delegate 类的一个重要成员,它的主要作用是调用与该 Delegate 对象关联的实际方法。当有一个事件处理程序、回调函数或者其他需要动态调用方法的情况时,你可以通过 Invoke 或者 BeginInvoke 方法来触发这个方法。
例如:
```csharp
public delegate void MyEventHandler(string message);
class MyClass
{
public event MyEventHandler MyEvent;
public void TriggerEvent(string message)
{
if (MyEvent != null)
MyEvent.Invoke(message);
}
}
// 使用场景
MyClass myInstance = new MyClass();
myInstance.MyEvent += MyHandler; // 注册事件处理程序
void MyHandler(string msg)
{
Console.WriteLine($"Received message: {msg}");
}
myInstance.TriggerEvent("Hello from Delegate!");
```
在这个例子中,`TriggerEvent` 方法会调用注册到 `MyEvent` 上的 `MyHandler`。当你通过 `Invoke` 调用时,它是同步的;如果想异步地调用,可以使用 `BeginInvoke` 和 `EndInvoke`。
阅读全文