ti-enxame.com

Expressão lambda para vários parâmetros

Entendo que uma expressão lambda é essencialmente uma declaração de delegado em linha para impedir a etapa extra

exemplo

delegate int Square(int x)
public class Program
{
   static void Main(String[] args)
   {
      Square s = x=>x*x;
      int result = s(5);
      Console.WriteLine(result); // gives 25
   }
}

Como aplicar expressões Lambda a vários parâmetros

 delegate int Add(int a, int b)
 static void Main(String[] args)
 {
    // Lambda expression goes here
 }

Como os vários parâmetros podem ser expressos usando expressões Lambda?

27
user544079

Você deve entender o comportamento Func , onde o último parâmetro é sempre a saída ou resultado

Função <1, 2, outPut>

Func<int, int, int> Add = (x, y) => x + y;

Func<int, int, int> diff = (x, y) => x - y;

Func<int, int, int> multi = (x, y) => x * y;
42
spajce

Sim. Quando você tiver argumentos lambda diferentes de um (zero ou> 1), use parênteses em torno deles.

Exemplos

Func<int, int, int> add = (a,b) => a + b;

int result = add(1, 3);

Func<int> constant = () => 42;

var life = constant();
13
Eric J.
delegate int Multiplication(int x, int y)
public class Program
{
   static void Main(String[] args)
   {
      Multiplication s = (o,p)=>o*p;
      int result = s(5,2);
      Console.WriteLine(result); // gives 10
   }
}
1
Aben