Exercícios de C#

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

C#
Rodar código →
Program.cs
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]); }
}
Resultado da execução
C#

Pratique com o depurador

Coloque um breakpoint em uma atribuição ou condição importante, clique em Debug e veja os valores das variáveis locais antes de passar para a próxima linha.

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