Возможный дубликат:
C # Почему нельзя назначить анонимный метод var?У меня есть следующий оператор в C #
Func
add = (x, y) => x + y; Но когда я заменяю левый побочный оператор со следующим
var add = (x, y) => x + y;
Я получаю ошибку компилятора ( Невозможно присвоить лямбда-выражение неявно типизированной локальной переменной ). Почему?
Ключевое слово var
не будет работать, потому что лямбда-выражения используются для обоих делегатов в качестве деревьев выражений, а компилятор не знает, к какому из них он должен преобразовывать лямбда-выражения. Другими словами, для вашей (x, y) => x + y
лямбды допустимы следующие типы: Func<int, int, int>
и Expression<Func<int, int, int>>
.