Un dépôt générique en mémoire avec C#
Dans cette leçon, vous allez construire une classe de dépôt (repository) générique capable de stocker n'importe quel type de données tout en restant sûre pour les types.
Introduction
Un dépôt (repository) est la couche intermédiaire chargée de stocker et de récupérer les données. En l'écrivant de façon générique, une seule implémentation suffit pour de nombreux types de données, comme les utilisateurs, les produits ou les commandes, sans aucune conversion de type.
La classe Repository<T> stocke les données dans une List<T> private. Quand on crée new Repository<string>(), le dépôt n'accepte que des chaînes, et toute tentative d'ajouter un autre type est signalée par le compilateur. La propriété All renvoie une IReadOnlyList<T>, qui permet de lire la liste mais pas de la modifier depuis l'extérieur.
Exemple C# exécutable
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#S'entraîner avec le débogueur
S'entraîner avec un défi
Utilisez le contenu de cette leçon pour résoudre un vrai problème. Chaque défi s'exécute dans le navigateur, avec des tests instantanés et une revue par l'IA.
Tous les défis