using System.Collections.Generic;
public class CustomEventArgs
public CustomEventArgs(string s)
public string Message {get;set;}
public event EventHandler<CustomEventArgs> Event;
public void DoSomething()
OnRaiseCustomEvent(new CustomEventArgs("Did something"));
protected virtual void OnRaiseCustomEvent(CustomEventArgs e)
e.Message += String.Format(" at {0}", DateTime.Now.ToString());
public Subscriber(string ID, Publisher pub)
pub.Event += HandleCustomEvent;
void HandleCustomEvent(object sender, CustomEventArgs e)
Console.WriteLine(id + " received this message: {0}", e.Message);
public static void Main(string[] args)
Publisher pub = new Publisher();
Subscriber sub1 = new Subscriber("sub1", pub);
Subscriber sub2 = new Subscriber("sub2", pub);