1.委托关键字是delegate,事件的关键字增加event(
时间: 2024-12-13 07:19:48 浏览: 12
在.NET编程中,`delegate` 和 `event` 都是非常重要的特性,它们分别用于实现回调函数和事件驱动编程。
1. **Delegate** 关键字:它是C#中的一种引用类型,类似于函数指针。它允许我们将方法作为值传递给其他方法,或者存储在一个变量中以便稍后调用。通过定义一个 delegate 类型,我们可以创建一个可以处理特定类型的委托实例,并将其赋值给方法。例如:
```csharp
public delegate void MyCallback(string message);
...
MyCallback myHandler = Console.WriteLine; // 将Console.WriteLine方法赋值给委托
// 调用委托
myHandler("Hello from delegate!");
```
2. **Event** 关键字:这是用于实现事件机制的核心部分。事件是一种特殊的委托,当其关联的行为发生改变(如方法被调用)时,会通知订阅该事件的所有监听者。通过 `event` 关键字声明并公开事件,然后在类内部定义事件处理器(也称为“事件触发器”)。外部代码可以通过 `.AddEventHandler()` 或 `.RemoveEventHandler()` 来订阅或取消订阅事件。举个例子:
```csharp
public class Button
{
public event EventHandler Clicked;
...
public void OnClick()
{
Clicked?.Invoke(this, EventArgs.Empty); // 触发事件
}
}
```
阅读全文