Ejercicios de C#

Un repositorio genérico en memoria con C#

En esta lección vas a construir una clase de repositorio (repository) genérica capaz de guardar cualquier tipo de datos sin perder la seguridad de tipos.

Introducción

Un repositorio (repository) es la capa intermedia que se encarga de guardar y recuperar los datos. Si lo escribes de forma genérica, una sola implementación sirve para muchos tipos de datos, como usuarios, productos o pedidos, sin ninguna conversión de tipo.

La clase Repository<T> guarda los datos en una List<T> private. Cuando creas new Repository<string>(), el repositorio solo acepta cadenas, y el compilador avisa si intentas añadir otro tipo. La propiedad All devuelve una IReadOnlyList<T>, que permite leer la lista pero no modificarla desde fuera.

Ejemplo de C# ejecutable

C#
Ejecutar 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 de la ejecución
C#

Practica con el depurador

Pon un punto de interrupción en una asignación o condición importante, pulsa Debug y revisa los valores locales antes de pasar a la siguiente línea.

Practica con un reto

Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.

Todos los retos