title: Why can a .NET delegate not be declared static?
body: <p>When I try to compile the following:</p>
  
  <pre><code>public static delegate void MoveDelegate (Actor sender, MoveDirection args);
  </code></pre>
  
  <p>I receive, as an error: "The modifer 'static' is not valid for the this item." </p>
  
  <p>I'm implementing this within a singleton, with a separate class which calls the delegate. The problem is that when I use the singleton instance within the other class to call the delegate (from the identifier, not the type), I can't do that for whatever reason, even when I declare the delegate non-static. Obviously, I can only refer to it via the type directly if and only if the delegate is static.</p>
  
  <p>What is the reasoning behind this? I am using MonoDevelop 2.4.2.</p>
  
  <p><strong>update</strong></p>
  
  <p>After trying one of the suggestions with the following code:</p>
  
  <pre><code>public void Move(MoveDirection moveDir)
  {
      ProcessMove(moveDir);
  }
  
  public void ProcessMove(MoveDirection moveDir)
  {
      Teleporter.MoveMethod mm = new Teleporter.MoveMethod(Move); 
      moveDelegate(this, moveDir);
  }
  </code></pre>
  
  <p>I've received a processing error, which states that the MoveMethod must be a type, and not an identifier.</p>