简介
事件是使类具备向其它类通知发生的相关事情的能力。事件被分成两部分:一、引发或发送事件的类(称发布者);二、处理或接收事件的类(称订阅者)。事件也是类型的成员。在 .NET 的桌面应用程序中,按钮、列表框、文本输入框等控件都具有相关的事件,如按键响应、鼠标移动、点击等。
1、事件模型
事件一定是发布者(类)的内部逻辑触发的。事件的模型由事件发布者、事件成员、事件的响应、事件的处理(回调一个方法)及事件的订阅 五个部分组成。事件的订阅是以委托类型为基础的约束事件处理与事件绑定关联一起。下面通过一个图了解事件组成及关系。
示例:以 C# 中常见的定时器 Timer 为例,了解事件。
using System;
using System.IO;
using System.Timers;
namespace Fountain.Consoles.App
{
internal class Program
{
static void Main(string[] args)
{
try
{
// 事件的发布者
Timer timer = new Timer();
// 触发事件的逻辑
timer.Interval = 2000;
// 事件的订阅者
Log log= new Log();
log.RetentionTime = 20;
// 事件的订阅 (事件处理与事件关联在一起)
timer.Elapsed += log.Delete;
// 事件的发布者触发计时开始
timer.Start();
Console.ReadLine();
}
catch (Exception exception)
{
Console.WriteLine(exception.Message);
}
}
}
/// <summary>
/// 日志类
/// </summary>
public class Log
{
priv