c#委托和事件
时间: 2023-07-30 20:10:42 浏览: 62
C#中的委托和事件都是用于实现事件驱动编程的机制。
委托是一种类型,它定义了一个方法的签名。委托可以用来引用一个或多个具有相同签名的方法,并且可以像其他变量一样传递、赋值和调用。
事件是一种特殊的委托,它允许对象通知其他对象某些操作已经发生。事件通常与委托结合使用,当事件发生时,它会调用与之关联的委托。
在C#中,定义一个事件需要以下步骤:
1. 定义委托类型
2. 声明事件
3. 触发事件
下面是一个示例代码:
```
public delegate void EventHandler(object sender, EventArgs e);
public class MyClass {
public event EventHandler MyEvent;
public void RaiseEvent() {
MyEvent?.Invoke(this, EventArgs.Empty);
}
}
public class Program {
static void Main() {
MyClass obj = new MyClass();
obj.MyEvent += HandleEvent;
obj.RaiseEvent();
}
static void HandleEvent(object sender, EventArgs e) {
Console.WriteLine("Event handled");
}
}
```
这个示例代码声明了一个 `MyClass` 类,其中包含了一个名为 `MyEvent` 的事件。然后在 `Main` 方法中,我们实例化了一个 `MyClass` 对象,并订阅了 `MyEvent` 事件。最后,调用 `RaiseEvent` 方法触发了事件,事件处理程序 `HandleEvent` 被调用并输出了 "Event handled"。