Olá pessoal apaixonado por DOTNET...

Neste artigo irei fazer uma demonstração de como criar um método de extensão utilizando a linguagem C#.

Os métodos de extensão foram implementados a partir do C# 3.0, eles são um tipo especial de métodos estáticos. Eles permitem adicionar métodos a tipos existentes sem criar um novo tipo derivado ou ter que alterar diretamente as classes que utilizarão o mesmo, ou seja, adicionar novas funcionalidades.

Irei fazer um exemplo bem simples somente para demonstração de como criar o método estático para retirar a máscara de um CPF digitado pelo usuário do sistema. Para isso utilizarei o Visual Studio 2010, mas você pode utilizar também a versão 2008 do mesmo.

Abra o seu Visual Studio e vá no menu File, clique em New/Project/ASP.NET Web Application;

Figura 01
  

Clique em OK;

Um novo projeto Web será criado...

Figura 02

Para nosso exemplo, irei separar a nossa classe que conterá o(s) método(s) de extensão. Para isso clique com o botão direito do mouse no Solution de seu projeto criado, em seguida em Add/New/Project/Class Library;

Figura 03

Colocarei o nome de minha Classe  como UteisBO, para os que ainda não conhecem, BO(Business Object) se trata da classe responsável pela(s) regra(s) de negócio de nosso projeto.

Clique no botão OK.

Figura 04

Será criado um novo projeto em seu Solution contendo uma classe criada automaticamente.

Figura 05

Para poder criar um Método de Extensão sua classe deve ser estática para poder ser utilizada por outra classe sem a necessidade de ser instanciada. Aproveite e renomeie a classe para Uteis.

Abaixo, Observe nosso método de extensão criado para retirar a máscara de um número de CPF informado.

Figura 06

É um método bem simples, somente para demonstrar como criar um método de extensão.

Observem que na sua declaração também contém a clausula ‘static’ e também a palavra reservada ‘this’, que  neste caso irá indicar que o objeto que chamará este nosso método irá receber as alterações que serão executadas no mesmo. No caso, a retirada da máscara de CPF.

Também reparem que eu utilizo o Regex, que é uma classe especializada para manipular expressões regulares no C#. Aprofundaremos em Expressões regularem em um futuro artigo.

Agora que criamos nosso Método de Extensão vamos fazer a chamada dele em nossa página, para demonstração. Lembrando que este projeto é somente para demonstração de como criar um método de extensão e por isso não iremos fazer todas aquelas formatações em nossa página e nem adicionar outras funcionalidades.

Para poder utilizar o nosso método que se encontra em uma classe de outro projeto, primeiro precisamos fazer referencia ao nosso projeto que contem o método.

Clique com o botão auxiliar no nosso projeto Web RetiraMascaraCPF, logo após clique em Add Reference...

Figura 07

Clique na aba Projects e após isso selecione o nosso projeto UteisBO

Figura 08

Clique em OK, e pronto, sua referencia ao projeto UteisBO foi adicionada ao projeto RetiraMascaraCPF como mostra abaixo.

Figura 09

Agora abra a página Default.aspx.cs do seu projeto RetiraMascaraCPF.

Figura 10

Após abrir sua página, primeiro vamos adicionar uma diretiva using apontando para o nosso projeto que contém a classe que contém o nosso método de extensão.

Figura 11

Agora, no Próprio Page_Load, crie criarei uma variável que conterá o nosso CPF com a máscara.

Figura 12

Agora vamos criar uma outra variável que conterá o nosso CPF sem a máscara. Repare que iremos adicionar como valor à nossa variável cpfSemMascara a variável cpfComMascara, sendo implementado o nosso método de extensão para retirar a mascara de nosso valor fornecido na variável.

Figura 13

Pronto, o nosso método de extensão foi implementado. Para visualizar o resultado vamos escrever o valor na tela utilizando o Response.Write

Figura 14

Antes de executar o nosso projeto selecione o projeto RetiraMascaraCPF como inicial e depois a página Default.aspx como inicial. Clicando respectivamente com o botão direito do mouse em Set as StartUp Project e Set As Start Page.

Figura 15

Agora pressione Ctrl+Shift+B para compilar a nossa aplicação e depois, em fim, clique em F5 para executar.

Figura 16

Pronto. Nosso resultado foi alcançado com sucesso, criar e implementar um método de extensão.

Só gostaria de ressaltar que este foi um mero exemplo de como criar um método de extensão de que antes de implementarmos o mesmo em nossos projetos devemos primeiro fazer uma analise de sua necessidade, pois no caso de uma rotina por exemplo para retirar uma máscara de um CPF em uma aplicação Web poderíamos utilizar uma função no Cliente por meio de JavaScript ou JQuery que tornaria a aplicação mais rápida. Neste exemplo utilizei o exemplo de retirada de uma máscara somente para ficar mais didático e fácil de entender os Métodos de Extensão.

Bem pessoal e isso ai. Espero que tenham gostado e até logo!!!