You can have a static event and have multiple instances subscribe to it. You'll just have to keep in mind all instances that are wired will get notified of event and their implementation invoked. This also can have issues in memory management, your instances won't go out of scope and get GC'd until they unwire themselves from the event.
Heres an example script to show:
delegate void Pop();
static event Pop PopEvent;
void Main()
{
var t1= new Thing("firstone");
var t2= new Thing("secondOne");
//fire event
PopEvent();
}
public class Thing
{
public Thing(string name)
{
this.name = name;
PopEvent += this.popHandler;
}
private string name="";
public void popHandler()
{
Console.WriteLine("Event handled in {0}",this.name);
}
}
Output:
Event handled in firstone
Event handled in secondOne