tipos metodos funciones expresiones español ejemplos delegados anonimos anonimas c# lambda anonymous-methods

funciones - metodos anonimos c#



Expresión lambda vs métodos anónimos (2)

Esta pregunta ya tiene una respuesta aquí:

Me gustaría saber cuál es la diferencia. Actualmente estoy aprendiendo estas cosas y me parece que son lo mismo:

delegate void X(); X instanceOfX; instanceOfX = delegate() { code }; instanceOfX = () => { code };

Además, si la lambda es más nueva, ¿debería usar lambda y olvidarme de los métodos anónimos?


La única diferencia es que la lambda se puede convertir fácilmente a Expression<Func<void>> . Los delegados son puramente solo métodos / cierres, pero la lambda también se puede dividir en un árbol de expresiones:

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