CSharp Cheat sheet

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

Métodos de Extensión en C#

Los métodos de extensión en C# permiten agregar nuevas funcionalidades a tipos existentes sin modificar su código fuente ni usar herencia. Son especialmente útiles para mejorar la legibilidad y reutilizar lógica de forma elegante, y son ampliamente usados en LINQ y APIs fluidas.

Definir un método de extensión

Un método de extensión es un método estático en una clase estática, con el primer parámetro precedido por la palabra clave this.

public static class StringExtensions {
    public static bool EsNuloOVacio(this string texto) {
        return string.IsNullOrEmpty(texto);
    }
}
    

Aquí EsNuloOVacio se puede invocar como si fuera parte de la clase string.

Usar un método de extensión

Una vez definido, puedes llamarlo directamente sobre instancias del tipo extendido.

string saludo = null;
if (saludo.EsNuloOVacio()) {
    Console.WriteLine("El texto está vacío o es nulo.");
}
    

Esto mejora la claridad del código al evitar llamadas estáticas más verbosas.

Uso en LINQ

LINQ se basa fuertemente en métodos de extensión para ofrecer una sintaxis fluida y poderosa.

var numeros = new List { 1, 2, 3, 4, 5 };
var pares = numeros.Where(n => n % 2 == 0);

foreach (var p in pares) {
    Console.WriteLine(p);
}
    

Where es un método de extensión sobre IEnumerable<T>.

Buenas Prácticas

Usa métodos de extensión para agregar comportamiento a tipos que no puedes modificar directamente. Evita sobrecargar demasiado la API con métodos irrelevantes. Dale nombres claros y coherentes. Colócalos en namespaces apropiados para evitar colisiones innecesarias.

Ver también

Documentación oficial de Microsoft

Ver más en Microsoft Docs