事件涉及到两类角色---1.发布者 2.订阅者
简单例子:气象观测站【发布者】发布气象预告,电视台【订阅者】接受天气情况的报告
1.事件的定义
public event 委托类型 事件名;//public便于订阅者进行订阅和取消操作
事件还包含委托类型,自定义或者EventHandler
例子
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Delegate
{
public delegate void TempHandler(int temp);//定义委托类型,其实就是类类型
class EventTest
{
static void Main(String []args)
{
WeatherStation ws = new WeatherStation();
TV t1 = new TV();
TV t2 = new TV();
ws.TempEvent += new TempHandler(t1.Display);
ws.TempEvent += new TempHandler(t2.Display);//委托链
ws.ChangeTemp(44);
}
}
class WeatherStation
{
#region attribute
private int temp;
#endregion
public event TempHandler TempEvent;
public void ChangeTemp(int temp)
{
this.temp = temp;
TempEvent(this.temp);
}
}
class TV
{
public void Display(int temp)
{
Console.WriteLine("温度为" + temp);
}
}
}