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

So khớp mẫu (pattern matching) trong C#

Trong bài học này, bạn sẽ dùng biểu thức switch với các mẫu để kiểm tra kiểu và giá trị của dữ liệu một cách gọn gàng, an toàn.

Giới thiệu

So khớp mẫu (pattern matching) cho phép kiểm tra một giá trị có thuộc kiểu nào, có thỏa mãn điều kiện gì, đồng thời lấy dữ liệu ra để dùng ngay, tất cả trong một biểu thức. Cách làm này thay thế cho việc kiểm tra kiểu rồi ép kiểu thủ công, vốn dài dòng và dễ gây lỗi.

Biểu thức switch trong hàm Describe kiểm tra lần lượt từng mẫu: null cho trường hợp thiếu dữ liệu, int number when number > 0 cho số nguyên dương, string { Length: > 0 } cho chuỗi không rỗng, và _ cho mọi trường hợp còn lại. Với giá trị 12, mẫu số nguyên dương khớp và kết quả là positive 12.

Xem cách hoạt động

Kéo thanh trượt để đổi ngày. Chương trình nhảy thẳng tới case khớp, và tới default khi không case nào khớp.

Ví dụ C# chạy được

C#
Chạy code →
Program.cs
using System;

class Program
{
    static string Describe(object? value) => value switch
    {
        null => "missing",
        int number when number > 0 => $"positive {number}",
        string { Length: > 0 } text => $"text: {text}",
        _ => "other"
    };

    static void Main() => Console.WriteLine(Describe(12));
}
Kết quả khi chạy
positive 12

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