Junior
Em que consiste a essência dos métodos de extensão?
sobes.tech IA
Resposta da IA
Os métodos de extensão permitem adicionar novos métodos a tipos existentes sem alterar o seu código fonte ou criar um novo tipo derivado.
A essência é a seguinte:
- São declarados como métodos estáticos numa classe estática.
- O primeiro parâmetro do método de extensão tem a palavra-chave
thisantes do seu tipo. Este parâmetro indica o tipo que está a ser estendido. - São chamados como se fossem instâncias de métodos do tipo estendido.
Exemplo:
// Classe estática para métodos de extensão
public static class StringExtensions
{
// Método de extensão para o tipo string
public static string Truncate(this string input, int maxLength)
{
if (string.IsNullOrEmpty(input))
{
return input;
}
return input.Length <= maxLength ? input : input.Substring(0, maxLength) + "...";
}
}
// Uso do método de extensão
string myString = "This is a long string.";
string truncatedString = myString.Truncate(10); // Chamado como método de instância
// Equivale a chamar diretamente o método estático
string truncatedStringDirect = StringExtensions.Truncate(myString, 10);
Vantagens:
- Melhoram a legibilidade do código, permitindo usar a "sintaxe de ponto" em objetos.
- Permitem adicionar funcionalidades a classes seladas ou tipos de bibliotecas externas sem alterar o código fonte.
- Facilitam a escrita de consultas LINQ, pois muitos métodos LINQ são implementados como métodos de extensão.