在C#中,委托是一种类型,它可以存储对一个或多个方法的引用。委托可以被用来将方法作为参数传递给其他方法,或者用来在运行时动态地将方法绑定到委托上。
定义一个委托的语法如下:
delegate void MyDelegate(int param);
定义一个委托后,可以使用该委托来创建委托实例,并将方法绑定到该委托上:
MyDelegate myDelegate = new MyDelegate(SomeMethod);
事件是委托的一种特殊用法,它提供了一种机制,让类能够通知其他类或对象发生了一些重要的动作或状态变化。事件在C#中通常用于实现观察者模式。
定义一个事件的语法如下:
public event MyDelegate MyEvent;
当事件发生时,可以通过调用事件来触发委托绑定的方法:
MyEvent?.Invoke(10);
在使用事件时,通常会定义一个事件处理方法来处理事件触发时的逻辑:
void EventHandler(int param)
{
Console.WriteLine("Event occurred with parameter: " + param);
}
MyEvent += EventHandler;
通过委托和事件的机制,可以实现类与类之间的松耦合,使代码更具有可维护性和灵活性。