Maps.live.com - Olhos de Águia (Bird’s Eye) em Portugal Visual Studio 2008 - PowerCommands Extension
Mar 03

Marcas Technorati: , , ,

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


publicado por NC Etiquetas: , , , , , ,

Uma Resposta a “As Novas Funcionalidades do C# 3.0”

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

    [...] !!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) [...]

Deixar uma resposta