лямбда-выражение и ключевое слово var в C # [дубликат]

Возможный дубликат:
C # Почему нельзя назначить анонимный метод var?

У меня есть следующий оператор в C #

Func  add = (x, y) => x + y;

Но когда я заменяю левый побочный оператор со следующим

var add = (x, y) => x + y;

Я получаю ошибку компилятора ( Невозможно присвоить лямбда-выражение неявно типизированной локальной переменной ). Почему?

26
задан Community 23 May 2017 в 12:17
поделиться

1 ответ

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

12
ответ дан 28 November 2019 в 07:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: