1.9 KiB
title | localeTitle |
---|---|
Extension Mehods | Mehods de extensão |
Métodos de Extensão
Os métodos de extensão permitem "adicionar" métodos a tipos existentes sem criar um novo tipo derivado, recompilar ou modificar o tipo original. Para o código do cliente escrito em C #, não há diferença aparente entre chamar um método de extensão e os métodos realmente definidos em um tipo.
Os métodos de extensão mais comuns são os operadores de consulta padrão do LINQ que adicionam a funcionalidade de consulta aos System.Collections.IEnumerable e System.Collections.Generic.IEnumerable existentes. tipos.
Uso
Os métodos de extensão são definidos como métodos estáticos, mas são chamados usando a sintaxe do método da instância. O primeiro parâmetro especifica em qual tipo o método opera, e o parâmetro é precedido pelo modificador this. Os métodos de extensão estão apenas no escopo quando você importa explicitamente o namespace em seu código-fonte com uma diretiva using .
Exemplo
O exemplo a seguir mostra um método de extensão definido para a classe System.String .
namespace ExtensionMethods
{
public static class MyExtensions
{
public static int WordCount(this String str)
{
return str.Split(new char[] { ' ', '.', '?' },
StringSplitOptions.RemoveEmptyEntries).Length;
}
}
}
Agora você pode trazer o método WordCount para o escopo usando a diretiva:
using ExtensionMethods;
E você pode chamá-lo de um aplicativo usando esta sintaxe:
string s = "Hello Extension Methods";
int i = s.WordCount();
Mais Informações:
Como: implementar e chamar um método de extensão personalizado (guia de programação C #)