来源:《C#图解教程》
using System;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
Incrementer incrementer = new Incrementer();
Dozens dozensCount = new Dozens(incrementer);
incrementer.DoCount();
Console.WriteLine(dozensCount.DozensCount);
//------------------------
Publisher P = new Publisher();
Subscriber s = new Subscriber();
P.SimpleEvent += s.MethodA;
P.SimpleEvent += s.MethodB;
P.RaiseTheEvent();
}
}
}
//--------------------------------------------------------------------------------
public class IncrementereEventArgs : EventArgs
{
public int IterationCount { get; set; }
}
//发布者
class Incrementer
{
//public event Handler CounterADozen;
public event EventHandler<IncrementereEventArgs> CountedADozen;
public void DoCount()
{
IncrementereEventArgs args = new IncrementereEventArgs();
args.IterationCount = 6;
CountedADozen(this, args);
}
}
//订阅者
class Dozens
{
public int DozensCount { get; private set; }
public Dozens(Incrementer incrementer)
{
DozensCount = 0;
incrementer.CountedADozen += IncrementDozensCount;
}
void IncrementDozensCount(object source,IncrementereEventArgs e)
{
DozensCount++;
}
}
//-------------------------------------------------------------------------------
class Publisher
{
public event EventHandler SimpleEvent;
public void RaiseTheEvent()
{
SimpleEvent(this, null);
}
}
class Subscriber
{
internal void MethodA(object sender, EventArgs e)
{
Console.WriteLine("AAA");
}
internal void MethodB(object sender, EventArgs e)
{
Console.WriteLine("BBB");
}
}