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”…

Implicitly typed local variables

Esta nova funcionalidade do C# 3.0 vem facilitar a vida aos preguiçosos.🙂
Explicando melhor, o C# 3.0 dispõe agora de uma nova palavra “var” que permite declarar variáveis sem declarar o seu tipo explicitamente, ou seja, agora podemos criar algo do género:

var numero = 10;

Criámos uma variável local sem declarar o seu tipo. O tipo da variável é inferido pelo compilador, através da expressão que a está a inicializar.

Outros tipos de declaração possíveis:

var numero = 10;
var palavra = “Otorrinolaringologista“;
var pi = 3.14;
var encomendas = new Dictionary<int,Encomenda>();

que corresponderiam em C# 2.0 a:

int numero = 10;
string palavra = “Otorrinolaringologista“;
double pi = 3.14;
Dictionary<int,Encomenda> encomendas = new
Dictionary<int,Encomenda>();

Este tipo de inferência, como é efectuado durante a compilação, não afecta a performance do código, pois não é feita nenhuma verificação após a compilação. Se utilizarmos o reflector podemos ver claramente que o tipo da variável já existe depois do código estar compilado.

Este tipo de declaração segue algumas regras, para que o compilador consiga inferir o tipo da variável:

  • a declaração da variável tem de incluir uma inicialização.
  • a inicialização tem de ser feita através de uma expressão.
  • O tipo (depois de compilado) da expressão de inicialização não pode ser null.
  • Se a declaração da variável inclui múltiplas declarações, todas devem ter o mesmo tipo depois de compiladas.

Exemplos de código que geraria erros:

var numero; //não inicializada
var palavra = null; //inicializada a null

Nos próximos artigos vamos continuar a abordar as novas funcionalidades do C# 3.0.

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

Subscrevam aqui a fedd RSS

Uma resposta

  1. […] !!Substituir!! 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 um (tags: istomesmo.wordpress.com 2008 mes2 at_tecp C# C#3.0 blog_post) […]

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

%d bloggers like this: