Lập trình hướng đối tượng C#

Generic trong C#

Trong bài học này, bạn sẽ viết một class generic có thể dùng lại với nhiều kiểu dữ liệu mà vẫn đảm bảo an toàn kiểu.

Giới thiệu

Generic cho phép viết class hoặc phương thức với một kiểu dữ liệu chưa xác định, ký hiệu là T, và kiểu cụ thể sẽ được chọn khi sử dụng. Nhờ vậy, bạn chỉ cần viết code một lần mà vẫn dùng được với int, string hay bất kỳ kiểu nào, trong khi trình biên dịch vẫn kiểm tra kiểu đầy đủ.

Class Box<T> lưu một giá trị kiểu T. Khi tạo new Box<int>(42), T trở thành int, nên thuộc tính Value có kiểu int, và nếu cố gán một chuỗi vào, trình biên dịch sẽ báo lỗi ngay. Cũng class đó có thể dùng là Box<string> hay Box<double> mà không cần viết lại.

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

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

class Box<T>(T value) { public T Value { get; } = value; }

class Program
{
    static void Main()
    {
        var box = new Box<int>(42);
        Console.WriteLine(box.Value);
    }
}
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