- Để tạo một lambda expression, bạn chỉ định đầu vào parameters ở phía bên trái của operator =>, và bạn đặt khối biểu hiện hoặc các tuyên bố ở phía bên kia.
Xin đưa ra một ví dụ, lambda expression x => x * x quy định cụ thể một tham số có tên là x và trả về giá trị của x bình phương. Bạn có thể gán biểu thức này với một delegate, như ví dụ sau đây:
x => x * x : là biểu thức lambda.
- Mẫu cơ bản:A. Lambdas expression được sử dụng rộng rãi trong việc xây dựng Expression Trees (C# and Visual Basic). Một Lambdas expression trả về kết quả của biểu thức có dạng cơ bản sau đây:
ex: (input parameters) => expression //Truyền tham số => kết quả mong muốn
B. 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. ví dụ dưới có một giá trị đầu vào và
ex: (x, y) => x == y
Và(x, y) =>
{
if (x > y)
return (x);
else
return (y);
}
C. Đôi khi nó là khó khăn hoặc không thể cho trình biên dịch để suy ra các loại đầu vào. Khi điều này xảy ra, bạn có thể chỉ định loại một cách rõ ràng như trong ví dụ sau:
ex: (int x, string s) => s.Length > x
D. Xác định không có tham số đầu vào với dấu ngoặc rỗng:
ex: () => SomeMethod()
(Các mã trên thực hiện với delegate)
Lưu ý: Cấu trúc của một lambda expression có thể bao gồm một phương pháp gọi (Mehod Call). Tuy nhiên, nếu bạn đang tạo Expression Trees sẽ được sử dụng trong phạm vi khác, chẳng hạn như SQL Server, bạn không nên sử dụng các cuộc gọi phương pháp trong các biểu thức lambda. Các phương pháp này sẽ không có ý nghĩa bên ngoài bối cảnh của .NET common language runtime. (CLR) hay nói cách khác nó chỉ dùng trong môi trường .NET.
- Biểu thức Lambda có thể được dùng ở đâu ?
Bạn có thể dùng nó để đơn giản hóa dòng code của mình hoặc có thể dùng nó để thay thế phương thức anonymous và bất cư nơi đâu mà bạn khởi tạo Generic delegates. Đặc biệt là trong truy vấn LINQ.
- Thực hành với một số mẫu:
1. Mảng
2. Dùng với delegate Func (Func là một kiểu delegate mới)
Sẽ cập nhật sử dụng Lambda với LINQ sau.
Lambda Expression in C#
Related Tags :WritingObsolete
No comments:
Post a Comment
Commets Download Photoshop Actions, Lightroom Presets, PSD Template, Mockups, Stocks, Vectors, Fonts. Download free