Extension methods são uma ótima alternativa para estender funcionalidades de um tipo de dados. São métodos estáticos (static) de uma classe estática que se diferenciam por ter obrigatoriamente, na assinatura, o primeiro (e talvez o único) parâmetro precedido de this e com o tipo dados que se quer extender. Vejam o exemplo:
static class Extensao
{
public static Single Dobro(this Single Obj)
{
return Obj * 2;
}
}
O método Dobro() pode ser utilizado por qualquer variável do tipo Single. “É sério!! Isso é verdade mesmo!”
Hoje, no C# 2.0, para estendermos um tipo temos que utilizar o fenômeno da herança. Mas não podemos herdar de uma struct e em .net os tipos primitivos são structs. Veja agora a extensão do tipo Single, que é uma struct, com o C# 3.0:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ExtensionMothod
{
static class Extensao
{
public static Single Dobro(this Single Obj)
{
return Obj * 2;
}
}
class Program
{
static void Main(string[] args)
{
Single N = 10;
Console.WriteLine(N.Dobro());
}
}
}
Rafael Camargo da silva -
rafaelcamargo_99@hotmail.com
Microsoft Student Partner Co-Lead, trabalha na fábrica de software da Politec-Goiânia, instrutor de tecnologias de desenvolvimento Microsoft na Supera Education Center. Trabalha com desenvolvimento de softwares a mais de 6 anos.