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.


Uso del bloqueador de anuncios adblock

Hola!

Primero de todo bienvenido a la web de NetMentor donde podrás aprender programación en C# y .NET desde un nivel de principiante hasta más avanzado.


Yo entiendo que utilices un bloqueador de anuncios como AdBlock, Ublock o el propio navegador Brave. Pero te tengo que pedir por favor que desactives el bloqueador para esta web.


Intento personalmente no poner mucha publicidad, la justa para pagar el servidor y por supuesto que no sea intrusiva; Si pese a ello piensas que es intrusiva siempre me puedes escribir por privado o por Twitter a @NetMentorTW.


Si ya lo has desactivado, por favor recarga la página.


Un saludo y muchas gracias por tu colaboración

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

Buy me a coffee Invitame a un café