[C#01] Extension Methods
Helena Strada
Tópicos que você verá nesse post
- O que são e como criar Extension Methods no C#
Contexto
No dia-a-dia, você pode se deparar com tarefas que se repetem no seu código e que poderiam estar centralizadas em um local para serem reutilizadas.
Por exemplo, você precisa remover os acentos de palavras.
input: áéíóú_àèìòù_ãõ
output: aeiou_aeiou_ao
Extension Methods
No C#, você pode criar e utilizar as Extension Methods que são métodos de extensão que nos permitem adicionar funcionalidades a um tipo no C# que podem ser reaproveitadas e ajudam na centralização.
using System.Globalization;
using System.Text;
public static class ExtensionMethods
{
public static string unaccented(this string str)
{
if (null == str) return string.Empty;
var chars = str
.Normalize(NormalizationForm.FormD)
.ToCharArray()
.Where(c => CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark)
.ToArray();
return new string(chars).Normalize(NormalizationForm.FormC);
}
}
Utilizando a extension method criada.
class Program
{
static void Main()
{
var wordWithAccent = "áéíóú_àèìòù_ãõ";
Console.WriteLine(wordWithAccent.unaccented());
}
}
aeiou_aeiou_ao