Os métodos de Extensão permitem adicionar métodos a tipos já existentes sem precisar criar um tipo derivado, ou até mesmo modificar o já existente.
Uns dos exemplos que podemos ver são o operadores de consulta LINQ, que utilizam essa nova funcionalidade.
Os métodos de extensão são definidos como estáticos mas são chamados como se fossem métodos da instância.
Extensao.class:
using System.Globalization;
namespace ExtensionMethods
{
public static class Extensao
{
public static string letraMaiscula(this String str)
{
TextInfo ti = new CultureInfo("en-US",false).TextInfo;
return ti.ToTitleCase(str);
}
}
}
Principal.class:
using ExtensionMethods;
public static void Main() {
String teste = "hello world";
Console.WriteLine("{0}", teste.letraMaiscula( teste ) );
}
Output:
Hello World
Agosto 27, 2008 at 2:03 pm
[...] Métodos de Extensão podemos criar um .EqualsIgnoreCase(string) =) [...]