title: C# generics -- why do lambdas work, when simple methods don't?
body: <p>I'm having trouble understanding why the C# compiler can infer types for</p>
  
  <pre><code>Array.ConvertAll(new int[1], i =&gt; Convert.ToDouble(i));
  </code></pre>
  
  <p>but not for</p>
  
  <pre><code>Array.ConvertAll(new int[1], Convert.ToDouble);
  </code></pre>
  
  <p>when it would seem that the former would be a more complicated deduction than the latter.</p>
  
  <p>Could someone please explain why this happens?</p>