Un repository generico in memoria con C#
In questa lezione costruirai una classe repository generica che può memorizzare qualsiasi tipo di dato mantenendo la sicurezza dei tipi.
Introduzione
Un repository è lo strato intermedio responsabile di salvare e recuperare i dati. Scrivendo il repository in forma generica, basta una sola implementazione per molti tipi di dati, come utenti, prodotti o ordini, senza conversioni di tipo.
La classe Repository<T> memorizza i dati in una List<T> private. Creando new Repository<string>(), il repository accetta solo stringhe, e ogni tentativo di aggiungere un altro tipo viene bloccato dal compilatore. La proprietà All restituisce un IReadOnlyList<T>, che permette di leggere la lista ma non di modificarla dall'esterno.
Esempio C# eseguibile
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#Esercitati con il debugger
Esercitati con una sfida
Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.
Tutte le sfide