using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Examples
{
public delegate void DelPublish();//声明事件所需的委托(代理)
class Button_NoVisble //发布者:相当于"button控件"
{
public event DelPublish EvePublish;//事件的声明, 相当于" button控件.Click事件"
public void issue()//控件触发事件
{
if (EvePublish != null)
{
Console.WriteLine("发行刊物了");
EvePublish();
}
}
}
class EveMethod_Subscriber//订阅者和订阅者行为,事件执行的方法
{
public void Receive()//在事件订阅者中定义事件处理程序
{
Console.WriteLine("订阅者已经收到英语刊物");
}
}
class Story//事件处理程序
{
static void Main()
{
Button_NoVisble myButtonNoVisble = new Button_NoVisble();
EveMethod_Subscriber mySubscriber = new EveMethod_Subscriber();
myButtonNoVisble.EvePublish += new DelPublish(mySubscriber.Receive);
myButtonNoVisble.issue();//触发事件,一旦发行,订阅者自动收取刊物。
Console.ReadLine();
}
}
}