事件
事件是基于委托的
关键字:event
使用
namespace ConsoleApp;
// 委托 delegate 可以放在类外面,事件 event 不可以。
public delegate double CalculateFunction(double x, double y);
class Program
{
// 定义事件
public static event CalculateFunction calFuncEvent;
static double Add(double x, double y) => x + y;
// 事件处理程序 Test3
static double Test3(double x, double y)
{
Console.WriteLine($"事件实现 Add >_<");
return Add(x, y);
}
static void Main(string[] args)
{
// 实例化委托(订阅)
calFuncEvent += Test3;
// 取消订阅
// calFuncEvent -= Test3;
// 激活事件
calFuncEvent?.Invoke(12, 34);
}
}
与委托的区别
委托是类型,事件是类型成员
事件是被限制了的委托