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.

Clique em OK;
Um novo projeto Web será criado...

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.

Será criado um novo projeto em seu Solution contendo uma
classe criada automaticamente.
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.
É 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...
Clique na aba Projects e após isso selecione o nosso projeto UteisBO
Clique em OK, e pronto, sua referencia ao projeto UteisBO
foi adicionada ao projeto RetiraMascaraCPF como mostra abaixo.
Agora abra a página Default.aspx.cs do seu projeto
RetiraMascaraCPF.
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.
Agora, no Próprio Page_Load, crie criarei uma variável que
conterá o nosso CPF com a máscara.
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.
Pronto, o nosso método de extensão foi implementado. Para
visualizar o resultado vamos escrever o valor na tela utilizando o
Response.Write
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.
Agora pressione Ctrl+Shift+B para compilar a nossa aplicação
e depois, em fim, clique em F5 para executar.
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!!!