如图所示,事件发布对象发布一个事件;事件订阅对象订阅和处理该事件。
using System;
namespace EventExample
{
///<summary>
/// MainClass : 主应用程序类
///</summary>
class MainClass
{
///<summary>
///应用程序的主入口点。
///</summary>
[STAThread]
static void Main(string args)
{
EventPublisher publisher = new EventPublisher();
EventReader1 reader1 = new EventReader1(publisher);
EventReader2 reader2 = new EventReader2(publisher);
publisher.DoSomthing();
Console.WriteLine("This program already finished!");
Console.ReadLine();
}
}
///<summary>
/// EventPublisher : 事件的发布者。
///</summary>
public class EventPublisher
{
// 第一步是申明委托
public delegate int sampleEventDelegate(string messageInfo);
// 第二步是申明与上述委托相关的事件
public event sampleEventDelegate sampleEvent;
public EventPublisher()
{
}
public void DoSomthing()
{
/* */
// 激发事件
if(this.sampleEvent != null)
{
this.sampleEvent("hello world!");
&