Eu utilizo Extensions Methods para praticamente duas finalidades:
- Implementar uma funcionalidade não existente para um objeto;
- Dar uma maior coesão a um trecho de código;
Como exemplo de coesão, veja o trecho de código abaixo:
Para deixar o código um pouco mais coeso pode implementado da seguinte forma:
Para criar uma classe que implemente o código que queremos é muito simples:
Agora pra utiliza-lo basta fazer o seguinte:
Pois é, o Visual Studio já me avisou que não encontrou o meu método de extensão. Isso se dá por que esqueci de fazer o using para o namespace onde esta a extensão, e isso aconteceu por que o intellisense não me deu essa opção.
Quando criamos um extension method dentro de uma namespace precisamos lembrar de fazer o using manualmente toda vez que queremos utiliza-lo, o que nem sempre é legal.
O que podemos fazer nesse caso?
Duas opções:
- Não definir uma namespace para a sua classe que contém os métodos de extensão;
- Definir o namespace igual ao objeto ao qual o método esta atrelado.
Fica ai a dica, agora é só mandar bala nos extensions methods.
Um comentário:
A outra opção é usar o Resharper e deixar ele fazer o "trabalho sujo". ;)
Postar um comentário