事件
事件是基於委託的
關鍵字: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);
}
}
與委託的區別
委託是型別,事件是型別成員
事件是被限制了的委託