C# 中的委托(Delegate)和事件(Event)是强大的特性,用于实现回调机制和事件驱动编程。以下是一些关于 C# 委托和事件的基础知识和使用示例。
委托(Delegate)
委托是一种引用类型,它存储对方法的引用。委托可以看作是函数的占位符,可以在运行时调用它们。
基本语法
public delegate void MyDelegate();
这里定义了一个名为 MyDelegate
的委托,它没有参数,也没有返回值。
使用委托
public class Program
{
public static void Main()
{
MyDelegate del = new MyDelegate(MyMethod);
del();
}
public static void MyMethod()
{
Console.WriteLine("Hello, World!");
}
}
在上述代码中,我们定义了一个方法 MyMethod
,并将其分配给委托 del
。然后,我们通过委托调用了 MyMethod
方法。
事件(Event)
事件是一种特殊的委托,它允许对象在特定情况下发出通知。事件的使用通常与接口和事件监听器一起使用。
基本语法
public class MyEventClass
{
public event MyDelegate MyEvent;
protected virtual void OnMyEvent()
{
MyEvent?.Invoke();
}
}
这里定义了一个名为 MyEventClass
的类,它包含了一个名为 MyEvent
的事件。
使用事件
public class Program
{
public static void Main()
{
MyEventClass eventClass = new MyEventClass();
eventClass.MyEvent += MyMethod;
eventClass.OnMyEvent(); // 调用事件,触发委托
}
public static void MyMethod()
{
Console.WriteLine("Event was triggered!");
}
}
在上述代码中,我们创建了一个 MyEventClass
的实例,并将其分配给 eventClass
。然后,我们将 MyMethod
方法添加到 MyEvent
事件的订阅列表中。最后,我们调用 OnMyEvent
方法来触发事件。
C# Delegate Event Example
更多关于 C# 委托和事件的信息,请参考本站的 C# 编程指南。