Delegate và biểu thức lambda trong C#
Trong bài học này, bạn sẽ truyền một hàm vào phương thức khác dưới dạng tham số bằng delegate Func và biểu thức lambda.
Giới thiệu
Delegate là kiểu dữ liệu đại diện cho một phương thức, cho phép bạn truyền hành vi như một giá trị. Biểu thức lambda là cách viết hàm ngắn gọn ngay tại chỗ, ví dụ (a, b) => a * b. Kết hợp hai khái niệm này, bạn có thể viết những phương thức linh hoạt nhận cách xử lý từ bên ngoài.
Kiểu Func<int, int, int> đại diện cho một hàm nhận hai số nguyên và trả về một số nguyên. Phương thức Apply không biết trước phép tính cụ thể mà chỉ gọi operation(left, right). Khi truyền lambda (left, right) => left * right, Apply thực hiện phép nhân và trả về 42.
Ví dụ C# chạy được
using System;
class Program
{
static int Apply(int left, int right, Func<int, int, int> operation)
=> operation(left, right);
static void Main()
{
int result = Apply(6, 7, (left, right) => left * right);
Console.WriteLine(result);
}
}
42Luyện tập với trình gỡ lỗi
Luyện tập với thử thách
Áp dụng kiến thức của bài học này để giải một bài toán thực tế. Mỗi thử thách chạy ngay trên trình duyệt, có kiểm thử tức thì và AI nhận xét.
Tất cả thử thách