Sobes.tech
Junior

O que é um método de extensão em C#?

sobes.tech IA

Resposta da IA

O método de extensão (Extension Method) é um método estático que pode ser chamado como se fosse um método do tipo que está a ser estendido, embora na realidade seja definido fora desse tipo.

Principais características:

  • É um método estático declarado numa classe estática.
  • O primeiro parâmetro do método de extensão deve estar marcado com a palavra-chave this e indicar o tipo que deseja estender.
  • Os métodos de extensão não têm acesso aos membros privados e protegidos do tipo que estão a estender.
  • Permitem adicionar funcionalidades a tipos existentes sem modificar o seu código fonte ou usar herança.

Exemplo de criação e uso:

  1. Definição de uma classe estática e um método de extensão:

    public static class StringExtensions // Classe estática
    {
        public static string ToTitleCase(this string input) // Método de extensão para o tipo string
        {
            if (string.IsNullOrEmpty(input))
            {
                return input;
            }
            // Lógica simples para converter para Title Case
            return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input.ToLower());
        }
    }
    
  2. Uso do método de extensão:

    string myString = "hello world";
    string titleCaseString = myString.ToTitleCase(); // Chamada como se fosse um método normal de string
    // titleCaseString agora contém "Hello World"