Ответ 1
Да, лямбда-выражения - это просто специальные анонимные методы.
Однако есть некоторые глубокие различия. Начните с Эрика Липперта Лембда-выражение против анонимных методов, часть первая и продолжайте остаток серия.
Я хотел бы знать, в чем разница. В настоящее время я изучаю этот материал, и мне кажется, что они такие же:
delegate void X();
X instanceOfX;
instanceOfX = delegate() { code };
instanceOfX = () => { code };
Также, если лямбда новее, следует ли использовать лямбда и забыть анонимные методы?
Да, лямбда-выражения - это просто специальные анонимные методы.
Однако есть некоторые глубокие различия. Начните с Эрика Липперта Лембда-выражение против анонимных методов, часть первая и продолжайте остаток серия.
Единственное отличие заключается в том, что лямбда может быть легко перенесена на Expression<Func<void>>
. Делегаты - это чисто методы/замыкания, но лямбда а также разбивается на дерево выражений:
Expression<Func<int, int>> expr = x => x*2; // Expression tree
Func<int, int> fun = x => x*2; // function
delegate int MyDelegate(int x);
MyDelegate del = x => x*2; // Same as function, delegate