Evil or not evil?
public static void Raise(this EventHandler handler, object sender, EventArgs args) { if (handler != null) { handler(sender, arg
You can always declare your events like this (not that i recommend it):
public event EventHandler OnClicked = delegate { };
That way they have something assigned to them when you call them, so they don't throw a null pointer exception.
You can probably get rid of the delegate keyword in C# 3.0...