ventajas expresiones español c# lambda

expresiones - ¿Puede una expresión C#lambda tener más de una declaración?



func c# lambda (5)

(Estoy asumiendo que realmente estás hablando de múltiples declaraciones en lugar de múltiples líneas).

Puede usar varias instrucciones en una expresión lambda utilizando llaves, pero solo la sintaxis que no usa llaves se puede convertir en un árbol de expresiones:

// Valid Func<int, int> a = x => x + 1; Func<int, int> b = x => { return x + 1; }; Expression<Func<int, int>> c = x => x + 1; // Invalid Expression<Func<int, int>> d = x => { return x + 1; };

¿Puede una expresión C # lambda incluir más de una declaración?

(Editar: Como se hace referencia en varias de las respuestas a continuación, esta pregunta originalmente se hizo sobre "líneas" en lugar de "declaraciones").



Por supuesto:

List<String> items = new List<string>(); var results = items.Where(i => { bool result; if (i == "THIS") result = true; else if (i == "THAT") result = true; else result = false; return result; } );


Puede poner tantas líneas nuevas como desee en una expresión lambda; C # ignora las nuevas líneas.

Probablemente quisiste preguntar sobre múltiples declaraciones .

Las declaraciones múltiples se pueden envolver entre llaves.

Ver la documentation .


Func<string, bool> test = (name) => { if (name == "yes") return true; else return false; }