C# orientado a objetos

Los genéricos en C#

En esta lección vas a escribir una clase genérica que se puede reutilizar con muchos tipos de datos sin perder la seguridad de tipos.

Introducción

Los genéricos permiten escribir clases o métodos con un tipo todavía sin definir, escrito T, y el tipo concreto se elige al usarlos. Así escribes el código una sola vez y lo usas con int, string o cualquier otro tipo, mientras el compilador sigue comprobando todos los tipos.

La clase Box<T> guarda un valor de tipo T. Cuando creas new Box<int>(42), T pasa a ser int, así que la propiedad Value es de tipo int, y si intentas asignarle una cadena, el compilador avisa del error de inmediato. La misma clase puede servir como Box<string> o Box<double> sin reescribirla.

Ejemplo de C# ejecutable

C#
Ejecutar código →
Program.cs
using System;

class Box<T>(T value) { public T Value { get; } = value; }

class Program
{
    static void Main()
    {
        var box = new Box<int>(42);
        Console.WriteLine(box.Value);
    }
}
Resultado de la ejecución
42

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