Sobes.tech
Junior — Middle

Pode explicar o que se entende por método de extensão na programação?

sobes.tech IA

Resposta da IA

O método de extensão em C# é uma forma de adicionar um novo método a um tipo existente sem alterar o código fonte desse tipo e sem criar um novo herdeiro. Esses métodos são declarados como estáticos numa classe estática, e o primeiro parâmetro do método é marcado com a palavra-chave this, indicando o tipo ao qual o método é adicionado.

Isto é útil quando se deseja expandir a funcionalidade de classes de bibliotecas às quais não se tem acesso para modificar.

Exemplo de método de extensão:

public static class StringExtensions
{
    public static bool IsNullOrEmpty(this string str)
    {
        return string.IsNullOrEmpty(str);
    }
}

// Uso:
string s = null;
bool result = s.IsNullOrEmpty();

Aqui, IsNullOrEmpty parece um método de instância de string, embora na verdade seja um método de extensão estático.