title: Anonymous methods vs. lambda expression
body: <p>Can anyone provide a concise distinction between anonymous method and lambda expressions?<br/></p>
  
  <p>Usage of anonymous method:</p>
  
  <pre><code>private void DoSomeWork()
  {
      if (textBox1.InvokeRequired)
      {
          //textBox1.Invoke((Action)(() =&gt; textBox1.Text = "test"));
          textBox1.Invoke((Action)delegate { textBox1.Text = "test"; });
      }
  }
  </code></pre>
  
  <p>Is it only a normal lambda expression being cast to a strongly typed delegate or there is more of it undercover.<br/></p>
  
  <p>I'm well aware that a strongly typed delegate like follow</p>
  
  <pre><code>UpdateTextDelegate mydelegate = new UpdateTextDelegate(MethodName)
  </code></pre>
  
  <p>suffice as a parameter of type <code>System.Delegate</code>, but the idea of anonymous method is rather new to me.</p>