Лямбда-метод - это анонимный метод.
Это означает, что вы не должны давать ему имя.
Если вы делаете это (в вашем случае вы присваиваете имя со ссылкой), это просто еще один способ объявить функцию.
В C # уже есть способ объявления функций, и это не лямбда-путь, который был добавлен
уникально для передачи функций через параметры и возврата их в качестве возвращаемых значений.
Подумайте, например, в javascript:
function f(var1,var2,...,varX)
{
some code
}
или
var f = function() {
some code
}
Другой синтаксис (почти) одно и то же.
Для получения дополнительной информации о том, почему это не одно и то же: Javascript: var functionName = function () {} против функции functionName () {}
Другой пример: в Haskell Вы можете определить две функции:
function1 :: Int -> Int
function1 x = x + 2
или
function2 :: Int -> Int
function2 = \x -> x + 2
То же самое (на этот раз я думаю, что это то же самое), другой синтаксис. Я предпочитаю первый, это более понятно.
C # 3.5, как и Javascript, имеет много функциональных влияний. Некоторые из них следует использовать с умом, ИМХО.
Кто-то сказал, что локальные лямбда-функции с присваиванием в ссылке являются хорошей заменой метода, определенного в другом методе, подобного предложению «let» или «where» в Haskell.
Я говорю «похоже», потому что у пар есть очень разная семантика, например, в Haskell я могу использовать имя функции, которое еще не объявлено, и определить его позже с «где», тогда как в C #, с назначением функции / ссылки I не могу этого сделать.
Кстати, я думаю, что это хорошая идея, я не запрещаю использование лямбда-функции, я просто хочу заставить людей задуматься об этом.
У каждого языка есть свой механизм абстракции, используйте его с умом.