¡Se viene el black friday!! Para quienes querais comprar el libro bien de precio, aquí teneis un descuentazo del 20%!!;
Pero aprovechalo, porque la semana que viene será menor descuento!
Puedes ver el contenido de este vídeo junto con su curso en el modo vídeo (similar a Udemy) si pulsas aquí.

Extension methods en C#

El post que vamos a ver hoy esta directamente relacionado con el que vimos la semana pasada de los métodos estáticos y es que hoy vamos a ver que son los “Extension methods” los cuales nos permiten ampliar la funcionalidad de un objeto.

 

 

1 - Qué son los Extension Methods

Por ejemplo, como recordamos del post de en el que vimos las cadenas de texto el método string posee una serie de funciones o métodos por defecto, como pueden ser .ToUpper(), .ToLower() etc. .NET nos permite extender esa funcionalidad utilizando los extension methods o métodos extensibles.

 

 

2 - Como crear extension methods o métodos de extensión

Para este ejemplo vamos a crear un método que nos convierta la primera letra de una palabra o frase a mayúscula.

Para ello debemos crear un método que realice esta funcionalidad.

public static string PrimeraMaysucula(string fraseInicial)
{
    char primeraLetra = char.ToUpper(fraseInicial[0]);
    string RestoDeFrase = fraseInicial.Substring(1);

    return primeraLetra + RestoDeFrase;
}
Console.WriteLine(PrimeraMaysucula("hello world!"));

Pero como vemos en este método debemos mandar la palabra o frase como parámetro cada vez que queramos esta funcionalidad. Esta forma de programar es correcta, y válida, pero lo podemos hacer mejor. Y aquí es donde entran los extension methods

 

2.1 – Creación de un extension method

Como hemos indicado un extension method nos permite extender la funcionalidad de un objeto o tipo con métodos estáticos. Con las únicas dos condiciones que son, el método tiene que ser estático y en el primer parámetro, debemos indicar la palabra clave “this”.

Utilizamos la palabra clave this en el primer parámetro para indicarle al compilador a que tipo va a extender. Por lo tanto, el método anterior, nos quedaría de la siguiente forma  

public static class StringExtensions
{
    public static string PrimeraMaysucula(this string fraseInicial)
    {
        char primeraLetra = char.ToUpper(fraseInicial[0]);
        string RestoDeFrase = fraseInicial.Substring(1);

        return primeraLetra + RestoDeFrase;
    }
}

//Llamada
Console.WriteLine("hello world!".PrimeraMaysucula());

Como nota adicional indicar que los extension methods se suelen colocar en clases estáticas por supuesto, pero que además su nombre hace referenica, por ejemplo, si vamos a extender el tipo string, lo indicaremos con el nombre StringExtensions si vamos a extender el tipo int la llamaremos IntExtensions

Finalmente indicar que los extension methods pueden ser implementados para cualquier tipo, inclusive los creados por nosotros mismos.


os mola la nueva interfaz?

a tope! 🚀 60%
Un cagarro 💩 40%

© copyright 2025 NetMentor | Todos los derechos reservados | RSS Feed

Buy me a coffee Invitame a un café

🎨 Nueva Interfaz Disponible

¡Estamos probando una nueva interfaz con estilo Neo Brutalismo!

Esta es una versión en desarrollo que incluye:

  • ✨ Diseño moderno y audaz
  • 🎯 Mejor experiencia visual
  • 📱 Interfaz más limpia

¿Cómo activarla?

Añade ?useNewUI=true al final de cualquier URL

Ejemplo: https://netmentor.es?useNewUI=true

¿Cómo volver a la versión anterior?

Añade ?useNewUI=false al final de cualquier URL

⚠️ Esta es una versión en progreso. Algunos elementos pueden no funcionar perfectamente.