t

Comentários recentes

Exemplo de como trabalhar com Extension Methods

Postado por Daniel Fonseca Castro - Tuesday, July 01, 2008 6:29 PM

Uma das grandes novidades do .Net Framework 3.0 é os Extendions Methods com esse novo recurso é possível estender funcionalidade a qualquer objetos existente sem a necessidade de recopilar o objeto por exemplo você pode adicionar um método a um tipo string, um DataTable, um DataSet ,em fim a qualquer objeto.

Se você encontrar algum objeto que acredita que deveria ter uma funcionalidade qualquer basta adicionar essa funcionalidade , importante lembrar que esse recurso esta disponível a partir do .Net Framework 3.0 .

Todo Extension Methods em CSharp é estático(static) e deve estar em uma classe static também ,já em VB.NET é necessário criar um Module e adicionar um atributo a cada Extension Methods sinalizando que o método e um Extension , outro ponto importante também é que o primeiro argumento dos Extension Methods tem que ser o objeto que se quer estender funcionalidade .

Vamos ao exemplo vou adicionar uma funcionalidade ao tipo string , essa funcionalidade vai adicionar 3 asterisco no inicio e no fim do valor da string por exemplo se minha string conter o seguinte valor "Novo Recurso da Framework " o valor será alterado para "***Novo Recurso da Framework ***" e exibido na tela.

class Program
{
    static void Main(string[] args)
    {
        string str = "Novo Recurso da Framework";
        //Mostra o valor 
        Console.WriteLine(str);
        //Utiliza o Extension Methods 
        str.MostraValor();
        Console.ReadKey();
    }
}
public static class Extension
{
    public static void MostraValor(this string valor)
    {
        valor = valor.Insert(0, "***");
        valor = valor.Insert(valor.Length, "***");
        Console.WriteLine(valor);
    }
}
Imports System.Runtime.CompilerServices
Module Module1
    Sub Main()
        Dim str As String = "Novo Recurso da Framework"

        'Mostra o valor 
        Console.WriteLine(str)

        'Utiliza o Extension Methods 
        str.MostraValor()

        Console.ReadKey()
    End Sub
End Module

Module Extension
    <Extension()> Public Sub MostraValor(ByVal valor As String)
        valor = valor.Insert(0, "***")
        valor = valor.Insert(valor.Length, "***")
        Console.WriteLine(valor)
    End Sub
End Module

Código Fonte

Referências

http://msdn.microsoft.com/en-us/library/bb383977.aspx
http://blogs.msdn.com/vbteam/archive/2007/01/05/extension-methods-part-1.aspx

Daniel Fonseca Castro

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories: .NET Framework

Related posts

Add comment


 

  Country flag