Các chủ đề C# quan trọng

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

C#
Chạy code →
Program.cs
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);
    }
}
Kết quả khi chạy
42

Luyện tập với trình gỡ lỗi

Đặt breakpoint ở một phép gán hoặc điều kiện quan trọng, bấm Debug và xem giá trị các biến cục bộ (local variable) trước khi bước sang dòng tiếp theo.

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