Sobes.tech
Junior

¿Qué es un método de extensión en C#?

sobes.tech AI

Respuesta de la IA

El método de extensión (Extension Method) es un método estático que puede ser llamado como si fuera un método del tipo que se está extendiendo, aunque en realidad está definido fuera de ese tipo.

Características principales:

  • Es un método estático declarado en una clase estática.
  • El primer parámetro del método de extensión debe estar marcado con la palabra clave this y indicar el tipo que deseas extender.
  • Los métodos de extensión no tienen acceso a los miembros privados y protegidos del tipo que se extiende.
  • Permiten agregar funcionalidad a tipos existentes sin modificar su código fuente ni usar herencia.

Ejemplo de creación y uso:

  1. Definición de una clase estática y un método de extensión:

    public static class StringExtensions // Clase estática
    {
        public static string ToTitleCase(this string input) // Método de extensión para el tipo string
        {
            if (string.IsNullOrEmpty(input))
            {
                return input;
            }
            // Lógica simple para convertir a Title Case
            return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input.ToLower());
        }
    }
    
  2. Uso del método de extensión:

    string myString = "hello world";
    string titleCaseString = myString.ToTitleCase(); // Llamada como si fuera un método normal de string
    // titleCaseString ahora contiene "Hello World"