Repository generic lưu dữ liệu trong bộ nhớ bằng C#
Trong bài học này, bạn sẽ xây dựng một class repository generic có thể lưu bất kỳ kiểu dữ liệu nào mà vẫn đảm bảo an toàn kiểu.
Giới thiệu
Repository là lớp trung gian chịu trách nhiệm lưu trữ và truy xuất dữ liệu. Khi viết repository dưới dạng generic, bạn chỉ cần một cách cài đặt dùng chung cho nhiều loại dữ liệu như người dùng, sản phẩm hay đơn hàng, mà không cần ép kiểu.
Class Repository<T> lưu dữ liệu trong một List<T> private. Khi tạo new Repository<string>(), repository chỉ chấp nhận chuỗi, và mọi cố gắng thêm dữ liệu kiểu khác sẽ bị trình biên dịch báo lỗi. Thuộc tính All trả về IReadOnlyList<T>, cho phép đọc nhưng không cho sửa danh sách từ bên ngoài.
Ví dụ C# chạy được
using System;
using System.Collections.Generic;
class Repository<T>
{
private readonly List<T> _items = new();
public void Add(T item) => _items.Add(item);
public IReadOnlyList<T> All => _items;
}
class Program
{
static void Main() { var repo = new Repository<string>(); repo.Add("C#"); Console.WriteLine(repo.All[0]); }
}
C#Luyệ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