Visual Studio 2008 - PowerCommands Extension Código Seguro - The Developer Highway Code (Livro)
Mar 05

Marcas Technorati: , , ,

Artigo Principal - As Novas Funcionalidades do C# 3.0

Esta é sem dúvida umas das funcionalidade que mais gostei no C# 3.0. Com ela podemos extender tipos existentes (string, int, etc…) ou tipos construídos (client, car, person, etc…) com métodos adicionais. Estes métodos estáticos podem ser invocados com a mesma sintaxe que os métodos de instância.

Esta funcionalidade pode ser extremamente útil no desenvolvimento, e tornar o código muito mais limpo e reutilizável. De seguida vou mostrar um exemplo, de como podemos capitalizar as primeiras letras das palavras que constituem uma determinada string. Para isso vamo criar um Extension Method ao tipo string:

public static class IstoMesmoExtensions
{
  public static string ProperCase(this string s)
  {
    string[] words = s.Split(’ ‘);
    string result = string.Empty;

    foreach (string i in words)
    {
      result = result + i.Substring(0, 1).ToUpper() +
  
                  i.Substring(1).ToLower() + ” “;
    }
   
result = result.Substring(0, result.Length - 1);
    return result;
  }
}


Os métodos têm de ser criados obriatóriamente dentro de classes estáticas, e têm também eles de serem estáticos. O primeiro argumento do método define o tipo de dados a extender, como podem reparar no exemplo anterior, extendemos o tipo string. Reparem também que precisamos de utilizar a palavra reservada this como modificador do primeiro argumento do método. Os Extension Methods podem receber mais argumentos, estando apenas o primeiro reservado para o tipo de dados a extender.

De seguida podem ver um exemplo de utilização da extensão criada:

using IstoMesmoExtensions;protected void Button1_Click(object sender, EventArgs e)
{
    Label1.Text = TextBox1.Text.ProperCase();
}

A utilização é bastante simples, basta importar as extensões criadas, através do respectivo using e depois utilizar em qualquer objecto do tipo string. :)

Este foi um exemplo bastante simples, para mostrar no que consistem os Extension Methods, no entanto, esta é uma funcionalidade extremamente poderosa, que pode ser usada por exemplo para extender uma camada de acesso a dados gerada automaticamente, em que o código gerado não deve ser alterado porque pode ter de ser regerado.

Era bastante interessante criar uma biblioteca com um conjunto de extensões úteis, para podermos utilizar nos nossos projectos.

Neste site já existe uma pequena biblioteca com conversões entre os vários tipos nativos do .NET.

Partilhem as vossas ideias de funções que seriam úteis no quotidiano.

 

Se gostaram deste artigo subscrevam a feed RSS do istomesmo, para ficarem actualizados sobre os últimos artigos.

Subscrevam aqui a fedd RSS


publicado por NC Etiquetas: , , , , , , ,

Uma Resposta a “Novas Funcionalidades C# 3.0 - Extensions Methods”

  1. rascunho » Blog Archive » links for 2008-03-05 Diz:

    [...] Novas Funcionalidades C# 3.0 - Extensions Methods « Isto Mesmo Esta funcionalidade pode ser extremamente útil no desenvolvimento, e tornar o código muito mais limpo e reutilizável. (tags: istomesmo.wordpress.com 2008 mes2 dia5 at_tecp extension_methods C# C#3.0 blog_post) [...]

Deixar uma resposta