Универсальные методы C# — почему лямбда-выражения работают, а простые методы — нет?

Мне трудно понять, почему компилятор C# может вывести типы для

Array.ConvertAll(new int[1], i => Convert.ToDouble(i));

, но не для

Array.ConvertAll(new int[1], Convert.ToDouble);

, когда кажется, что первое будет более сложным выводом, чем второе.

Кто-нибудь может объяснить, почему это происходит?

18
задан Mehrdad 1 June 2012 в 01:36
поделиться