C# 中的委托和事件(详解)
时间: 2024-02-15 16:13:06 浏览: 95
委托是 C# 中的一种类型,它允许您将方法作为参数传递给其他方法或将方法存储在变量中,并在需要时调用它们。委托通常用于事件处理程序和回调函数。
事件是委托的一种特殊实现,它允许您在对象上注册和注销事件处理程序。当事件发生时,所注册的事件处理程序将被调用。
以下是一个示例,演示如何使用委托和事件:
```csharp
using System;
public class Program
{
// 定义一个委托类型
public delegate void MyDelegate(string message);
public class MyClass
{
// 声明一个事件,使用 MyDelegate 委托类型
public event MyDelegate MyEvent;
public void RaiseEvent(string message)
{
// 在事件上调用所有已注册的委托
MyEvent?.Invoke(message);
}
}
public static void Main()
{
MyClass myClass = new MyClass();
// 注册一个委托作为事件处理程序
myClass.MyEvent += new MyDelegate(MyEventHandler);
// 调用 RaiseEvent 方法,触发事件
myClass.RaiseEvent("Hello World");
}
public static void MyEventHandler(string message)
{
Console.WriteLine(message);
}
}
```
在上面的示例中,我们定义了一个委托类型 MyDelegate,并在 MyClass 类中声明了一个事件 MyEvent,使用 MyDelegate 委托类型。在 MyClass 类中,我们使用 RaiseEvent 方法来触发事件,并在该方法中调用已注册的委托。在 Main 方法中,我们创建了 MyClass 实例,并注册了一个委托作为事件处理程序。最后,我们调用 RaiseEvent 方法,触发事件,并在事件处理程序中打印消息。
希望这个示例可以帮助您更好地理解委托和事件在 C# 中的使用。
阅读全文