Вывод метода не работает с группой методов

Рассмотрим

void Main()
{
    var list = new[] {"1", "2", "3"};
    list.Sum(GetValue); //error CS0121
    list.Sum(s => GetValue(s)); //works !
}

double GetValue(string s)
{
    double val;
    double.TryParse(s, out val);
    return val;
}

Описание ошибки CS0121:

Вызов неоднозначен для следующих методов или свойств: 'System.Linq.Enumerable.Sum (System.Collections.Generic.IEnumerable , System.Func ) ' и ' System.Linq.Enumerable.Sum (System.Collections.Generic.IEnumerable , System.Func ) '

Я не понимаю, какая информация s = > GetValue (s) передают компилятору, что просто GetValue не делает - не является ли последний синтаксическим сахаром для первого?

11
задан Ohad Schneider 12 October 2011 в 20:11
поделиться