2013-02-23 34 views
22

Tôi hiểu một biểu thức lambda là trong bản chất một tuyên bố inline đại biểu để ngăn chặn bước thêmbiểu Lambda cho nhiều thông số

dụ

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 
    } 
} 

Làm sao người ta áp dụng biểu thức Lambda các thông số đa Something như

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

Làm cách nào để hiển thị nhiều tham số bằng biểu thức Lambda?

Trả lời

30

Bạn phải hiểu được Func hành vi, nơi tham số cuối cùng luôn luôn là đầu ra hoặc kết quả

Func < 1, 2, sản lượng>

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; 
+0

ai đó có thể xây dựng, không thể hiểu được. – Augustas

+1

@Augustas Func => (x, y) => x == y; // điều này sẽ trả về giá trị true hoặc false trong biến bool thứ ba trong func. x và y là hai ints đầu tiên trong func. –

11

Có. Khi bạn có đối số lambda khác (0 hoặc 1), hãy sử dụng dấu ngoặc đơn xung quanh chúng.

Ví dụ

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

int result = add(1, 3); 

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

var life = constant(); 
1
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 
    } 
} 
Các vấn đề liên quan