Repositório genérico em memória com C#
Nesta lição, você vai criar uma classe de repositório genérica que guarda qualquer tipo de dado mantendo a segurança de tipos.
Introdução
Um repositório (repository) é a camada intermediária responsável por guardar e recuperar dados. Ao escrever o repositório de forma genérica, uma única implementação serve para vários tipos de dados, como usuários, produtos ou pedidos, sem conversões de tipo.
A classe Repository<T> guarda os dados em uma List<T> private. Ao criar new Repository<string>(), o repositório só aceita strings, e qualquer tentativa de adicionar outro tipo é barrada pelo compilador. A propriedade All retorna um IReadOnlyList<T>, que permite ler a lista mas não alterá-la de fora.
Exemplo de C# executável
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#Pratique com o depurador
Pratique com um desafio
Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.
Todos os desafios