Is a lambda expression a delegate?
<p>I can't directly pass a lambda</p>

<pre><code>form.Invoke(() =&gt; AMethod(form));
</code></pre>

<p>Because oddly enough a lambda is not a delegate type (per the compiler error). I seem to recall different information in Jon Skeet's .NET 4.0 book. And on <a href="http://msdn.microsoft.com/en-us/library/bb397687.aspx" rel="nofollow">MSDN</a> it says:</p>

<blockquote>
  <p>A lambda expression is an anonymous function that you can use <strong>to</strong>
   <strong>create delegates</strong> or expression tree types</p>
</blockquote>

<pre><code>    public static void Main()
    {
        Form form = new Form();                                
        form.Show();
        form.Invoke(() =&gt; AMethod(form));
        Application.Run();

        Console.Read();
    }

    public static void AMethod(Form form)
    {
        form.SendToBack();
    }
}
</code></pre>

<p>Yet, here we receive a compiler error:</p>

<blockquote>
  <p><em>Cannot convert lambda expression to type 'System.Delegate' because it
  is not a delegate type.</em></p>
</blockquote>

<p>Lambda's are supposed to be syntactic sugar for anonymous delegates. So what is the story here? What have I missed?</p>
