Removendo Acentos utilizando Métodos de extensão com C#

Métodos de extensão permitem que você “adicione” métodos para tipos existentes sem criar um novo tipo derivado, recompilar, ou modificar o tipo original. Os métodos de extensão são um tipo especial de método estático, mas eles são chamados como se fossem métodos de instância no tipo estendido. Para o código de cliente escrito em C # ou Visual Basic, não há diferença aparente entre chamar um método de extensão e os métodos que são realmente definidos em um tipo.
Mais informações acesse http://msdn.microsoft.com/en-us/library/vstudio/bb383977.aspx

Nesse tutorial iremos implementar um novo método de extensão, onde nesse método de extensão irá remover os acentos de uma determinada variável do tipo “string”. Como exemplo irei criar um novo projeto no VS2012 do tipo “Console Application”, logo abaixo segue a implementação.

Implementação e Codificação

public class Program
{
    static void Main(string[] args)
    {
        string palavra = "áéíóú";

        Console.WriteLine(palavra.RemoverAcentos());    
    }        
}

public static class StringExtensions
{
    public static string RemoverAcentos(this string valor)
    {
        byte[] bytes = Encoding.GetEncoding("Cyrillic").GetBytes(valor);

        return Encoding.ASCII.GetString(bytes);
    }
}

Como podemos observar a implementação é bem simples, criamos uma nova classe chamada StringExtensions e nela adicionamos o método de extensão chamado de RemoverAcentos(this string valor).
Com ajuda do .NET Framework, utilizaremos a classe abstract de Encoding chamando o método GetEnconding passando como parâmetro o valor Cyrillic do tipo string. Mais sobre a classe Encoding e o valor Cyrillic acesse o link http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx

Conclusão

Com implementações de métodos extensão conseguimos ganhar produtividade e organização nas funções que viram a ser implementadas.

Referências:

Bom pessoal é isso e até a próxima…

Anúncios