Conceitos e Exemplo Prático: Extensions Methods

Neste artigo veremos os conceitos e um exemplo prático com os Extensions Methods.

 Olá pessoal, neste artigo conceitos e exemplos práticos com os Extensions Methods. Acompanhem:

 Introdução – Os Extensions Methods (Métodos de Extensão), como o próprio nome diz, seriam uma extensão de uma determinada classe, em forma de método. Um exemplo disso seria um método que “estende” a classe String, um método personalizado que pega todas as letras E de uma palavra e faz determinada ação, ou mesmo um método que estende a classe Int32 ou a Decimal, pegando seus valores e os formatando como valores monetários, enfim temos vários exemplos.

 Veja um exemplo prático de um Extension Method nativo do .NET:

 Inicialmente comente o namespace System.Linq e instancie um objeto da classe ArrayList. Note que temos diversos métodos em sua classe, como mostra a Figura 01:


Figura 01 – Classe ArrayList sem Extensions Methods

 Agora descomente o System.Linq e chame novamente os métodos, veja na Figura 02:


Figura 02 – Classe ArrayList com Extensions Methods

 Percebeu que agora temos alguns métodos com uma seta pra baixo? Então, esses são os Métodos de Extensão que o System.Linq “incorpora” à classe ArrayList. 

 É importante ressaltar o seguinte: para que os Extensions Methods funcionem, devemos criar uma classe estática e também um método estático, usando o modificador static. Dito isto, crie um projeto no Visual Studio, do tipo Console Application. Nele, adicione uma classe, dando qualquer nome a ela.

 Na classe iremos criar um método que retornará a data formatada, para o padrão brasileiro ou americano, dependendo de nossa escolha.

 Acompanhe toda a codificação, com explicações pertinentes logo abaixo:

namespace Extensions { public static class StringExtensions { public enum DateFormat { USFormat, BrazilianFormat } public static string FormatDateString(this string strData, DateFormat dateFormato) { string strRetorno = "Data Inválida!"; try { DateTime date = DateTime.Parse(strData); if (dateFormato == DateFormat.BrazilianFormat) strRetorno = date.Date.ToString("dd/MM/yyyy"); else strRetorno = date.Date.ToString("MM/dd/yyyy"); } catch { return strRetorno; } return strRetorno; } } }

 Note que dei um nome customizado para o namespace e criei classes e métodos estáticos. Criei também um enumerador, onde defino dois tipos de formatações de datas, uma para o padrão brasileiro, outra para o padrão americano. Em meu método, do tipo string, passo como parâmetro um valor string, acompanhada da keyword this (que deve ser usada nesses casos), e o enumerador, também como parâmetro para o método.

 No método instancio uma variável do tipo string e uma variável do tipo DateTime que por sua vez recebe a conversão da variável do tipo string, criada anteriormente.

 Ao final faço uma verificação: se o formato for brasileiro a variável do tipo string recebe a data formatada como dd/MM/yyyy (padrão brasileiro). Se for americano, recebe o outro formato. Note que se der um erro, o valor padrão, exibindo a mensagem de Data Inválida irá aparecer, ao entrar no bloco catch.

 Agora vá à classe Program.cs e use a seguinte codificação:

static void Main(string[] args) { string strData = "16/05/1989"; Console.Write(strData.FormatDateString(StringExtensions.DateFormat.USFormat)); Console.ReadKey(); }


 Aperte F5 e veja o resultado, na Figura 03:


Figura 03 – Extension Method em Prática

 Dessa forma podemos criar Extensions Methods para diversas finalidades, deixo como dica para que vocês usem a criatividade para criar métodos úteis em seu desenvolvimento!

 Dica de Site: acessem o site especializado em Extension Methods, com mais de 300 deles, clicando aqui.

 Assim finalizo o artigo. Muito obrigado a todos!

 Créditos à Luciano Pimenta, que fez as videoaulas e ao Portal Linha de Código, por onde pude baixá-las (mediante assinatura), estudá-las e posteriormente fazer este artigo.

 Um abraço, e até o próximo artigo.

 Wellington Balbo de Camargo

 wellingtonbalbo@gmail.com


Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados