Novas Funcionalidades C# 3.0 – Extensions Methods

Mudámos de casa – visitem o novo site em www.istomesmo.com

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;
}
}

Continuar a ler

As Novas Funcionalidades do C# 3.0

Marcas Technorati: ,,,

Mudámos de casa – visitem o novo site em www.istomesmo.com

image O C# 3.0 trouxe à plataforma .Net um conjunto de novas funcionalidades que tornam a mesma mais robusta ,completa, e ao mesmo tempo permitem poupar tempo em determinadas rotinas de programação. As novas funcionalidade encaixam-se na platataforma como uma extensão ao C# 2.0.

As principais novas funcionalidades presentes nesta extensão (C# 3.0) são as seguintes:

  • Implicitly typed local variables – permitem que o tipo de uma variável local seja determinado a partir da expressão utilizada para a inicializar.
  • Extension methods – permitem extender os tipos existentes ou tipos construídos com métodos adicionais.
  • Lambda expressions – são uma evolução dos métodos anónimos que possiblitam uma melhoria na determinação dos tipos e nas conversões para “delegates” e “expression trees“.
  • Object Initializers – facilitam a construção e inicialização de objectos.
  • Anonymous types – são tipos/objectos determinados e criados automaticamente a partir de “Object Initializers“.
  • Implicitly typed arrays – permitem a criação e inicialização de arrays que determinam automaticamente o tipo dos elementos do array através da inicilalização do mesmo.
  • Query expressions – disponibilizam uma sintaxe integrada na própria linguagem que permite efectuar queries de modo semelhante ao SQL e XQuery.
  • Expressions tree – possibilitam que as “Lambda expressions” sejam representadas como dados em vez de código (“delegates”).

Nos próximos artigos vou explicar cada uma destas funcionalidades mais detalhadamente. Vamos começar já pela nova palavra do C# 3.0, a palavra “var”…

Continuar a ler