CSharp Cheat sheet

Tu guía rápida para programar en C#

Generics en C#

Los generics (genéricos) en C# permiten definir clases, métodos e interfaces que funcionan con cualquier tipo de dato de forma segura en tiempo de compilación. Ayudan a escribir código reutilizable y flexible sin sacrificar la seguridad de tipos. Son ampliamente usados en colecciones como List<T>, Dictionary<K,V> y en tus propias estructuras personalizadas.

Definir una clase genérica

Puedes declarar clases con parámetros de tipo para que funcionen con distintos tipos de datos.

public class Caja {
    public T Contenido { get; set; }

    public void MostrarContenido() {
        Console.WriteLine($"Contenido: {Contenido}");
    }
}
    

Aquí, T es un parámetro de tipo que se reemplaza cuando se crea una instancia de la clase.

Usar una clase genérica

Puedes especificar el tipo concreto al instanciarla.

var cajaDeEnteros = new Caja { Contenido = 42 };
cajaDeEnteros.MostrarContenido(); // Contenido: 42

var cajaDeTexto = new Caja { Contenido = "Hola" };
cajaDeTexto.MostrarContenido(); // Contenido: Hola
    

Esto permite reutilizar la misma lógica para diferentes tipos sin duplicar código.

Generics en métodos

También puedes definir métodos genéricos para operar con tipos flexibles.

public T Identidad(T valor) {
    return valor;
}
    

Llamada:

int resultado = Identidad(5);
string texto = Identidad("Genérico");
    

Buenas Prácticas

Usa generics para evitar casting innecesario y errores en tiempo de ejecución. Limita los parámetros de tipo con constraints si es necesario (where T : class, etc.). Escribe nombres de tipo significativos para mayor claridad. Aprovecha las colecciones genéricas de .NET en lugar de las no tipadas como ArrayList.

Ver también

Documentación oficial de Microsoft

Ver más en Microsoft Docs