title: Write a method which accepts a lambda expression
body: <p>I have a method with the following signature:</p>
  
  <pre><code> void MyMethod(Delegate d){};
   void MyMethod(Expression exp){};
   void MyMethod(object obj){};
  </code></pre>
  
  <p>However, this fails to compile:</p>
  
  <pre><code>MyMethod((int a) =&gt; a)
  </code></pre>
  
  <p>with the following error: </p>
  
  <pre><code>"Cannot convert lambda expression to type 'object' because it is not a delegate type"
  </code></pre>
  
  <p>Why doesn't this work?</p>
  
  <p>Edit: I know that this works. The compiler compiles the lambda expression to a delgate in this case I think.</p>
  
  <pre><code>void MyMethod(Func&lt;int, int&gt; d){};
  </code></pre>
  
  <p>Kind regards,</p>