Sunday 2 December 2018

Lambda-Expressions là gì?

1.Lambda Expressions

Có thể nói so với anonymous method, lambda expression được coi là một sự cái tiến đáng giá từ phiên bản C# 2.0 lên C# 3.0. Khi dùng anonymous method, bạn có thể tạo các hàm in-line nhằm hạn chế việc khai báo các hàm riêng lẻ không cần thiết, giúp mã lệnh ngắn gọn hơn. Nay với lambda expression, bạn có thể viết ngắn gọn và dễ dàng hơn nhờ việc cung cấp toán tử và cú pháp mới, đồng thời thể hiện sự “thông minh” của compiler bằng cách tự nhận diện kiểu của dữ liệu. Ngoài ra, đây còn là kĩ thuật để tạo ra các kiểu expression tree mà ta sẽ bàn tới khi có dịp.


2.Lambda Expressions là gì?

Lamda Expression là một hàm không có tên (unamed function) với các tham số (parameters) và nội dung thực thi (body). Nội dung thực thi của Lamda expression có thể là 1 khối lệnh hoặc 1 biểu thức. Dấu “->” tách biệt các tham số và nội dung thực thi.


3.Áp dụng Lambda Expressions?

Sau đây mình cho các bạn một vài ví dụ về cách viết Lambda Expressions:
//1. Có thể bỏ qua kiểu dữ liệu của parameter truyền vào
(string qua) => {Console.WriteLine("Tặng quà: " + qua);}
(qua) => {Console.WriteLine("Tặng quà: " + qua);}
//2. Nếu không có parameter, bỏ dấu () trống
() => {Console.WriteLine("Hello");}
//3. Nếu chỉ có 1 parameter, có thể bỏ luôn dấu ()
(x) => {Console.WriteLine("Hello " + x);}
x => {Console.WriteLine("Hello " + x);}
//4. Nếu có nhiều parameter, ngăn cách bằng dấu phẩy
(x, y) => {Console.WriteLine("Hello " + x + y);}
//5. Nếu anonymous function chỉ có 1 câu lệnh, có thể bỏ dấu {}
x => { Console.WriteLine("Hello " + x); }
x => Console.WriteLine("Hello " + x)
//6. Nếu chỉ return 1 giá trị, có thể bỏ chữ return.
//4 lambda expression sau tương đương nhau
(x) => { return x > 4; }
x => { return x > 4; }
x => return x > 4
x => x > 4

Còn đây là cách viết rút gọn của 1 lambda expressions:



Qua các ví dụ ở trên thì các bạn cũng khá hình dung về lambda expressions
rồi đúng không nào. Để có thể hiểu rõ thì chỉ có cách là các bạn luyện tập
nhiều nhiều và thật nhiều thôi ^^

4.Tổng hợp về Lambda Expressions?

Lambda expression là một sự cải tiến hơn nữa so với anonymous method. Chúng ta có thể viết code ngắn gọn hơn nữa so với anonymous method Trong C#, toán tử lambda là =>

5.Phân tích Lambda Expressions?

Lambda Expression đã được cải tiến tốt hơn so với dùng Anonymous method
Cụ thể đã được cải tiến từ Delegate -> Anonymous method ->Lambda expression.
  • Lambdas expression được sử dụng rộng rãi trong việc xây dựng Expression Tress.
  • Các ngoặc () là tùy chọn chỉ khi lambda có một tham số đầu vào. Hai hoặc nhiều thông số đầu vào được phân cách bằng dấu phẩy trong dấu ngoặc đơn.

6.Đánh giá Lambda Expressions?

Theo mình thì lambda expression một sự cải tiến hay nâng cấp tốt. Nó giúp chúng ta viết ngắn code nhưng vẫn dễ hiểu, và dễ học.






1 comment:

  1. Best Casinos in Atlantic City - Mapyro
    Explore the best Atlantic 사설토토 City casinos, casinos and restaurants located near you on Mapyro. 김포 출장안마 과천 출장안마 Nearby 밀양 출장안마 Casino 시흥 출장안마 | Casino Near Me | Boardwalk | Casino Near Me.

    ReplyDelete