When I try to compile the following:
public static delegate void MoveDelegate (Actor sender, MoveDirection args);
I receive, as an error: \
public static delegate void MoveDelegate (Actor sender, MoveDirection args);
Let me tell you what happened when you declared a delegate
The compiler creates a class, in this case named MoveDelegate, and extends it with System.MulticastDelegate.
Since you can not extend any non static type by static type.
So this is the reason why the compiler does not allow static delegate declaration. But still you can have static delegate reference.