Desenvolvimento - C#
Novidades C# 4 Linguagem Dinâmica
Com a chegada do framework 4.0 veio o C# 4 com algumas novidades dentre elas a linguagem dinâmica.
por Fernando SilvaO tema principal do C# 4 é a programação dinâmica, sendo que os objetos estão cada vez mais dinâmicos.
O C# 4 vem com 4 novas features , são elas:
Primeiro vamos falar um pouco da linguagem dinâmica.
Dynamic
O Visual Studio C# 2010 introduz um novo tipo, o tipo dinâmico. Ela funciona de forma dinâmica, mas ele é estático, um objeto ignora a verificação do tipo estático em tempo de compilação, como se fosse um object, mas mais poderoso. Em tempo de compilação ele assume qualquer operação.
Não esquecendo que o C# ainda é linguagem de Tipagem estática.
Ficou meio confuso o entendimento, então vamos à prática:
Exemplo ex = new Exemplo();
ex.metodo1(10,4);
public class Exemplo
{
public void metodo1(int x)
{ }
}
O papel do compilador neste exemplo, é analisar um conjunto de informações, o que cada instrução propõe a fazer em tempo de execução, e qualquer declaração inválida, provoca uma exception.
O mesmo exemplo só que agora usando o Dynamic.
dynamic ex = new Exemplo();
ex.metodo1(10, 4);
public class Exemplo
{
public void metodo1(int x)
{ }
}
Nesse caso o compilador do C#, irá compilar e somente em runtime será lançada uma Exception
Qualquer objeto pode ser implicitamente convertido para dinâmico, usando o boxing e o unboxing.
Na variável dynamic não existe o intellisense, porque o seu tipo ainda não é conhecido, isso acontece somente em runtime.
Para alguns casos, é preciso tomar algum cuidado na criação de método, usando o bom sendo e passar aquilo que se espera fazer.
Veja o código abaixo. Se você espera que o retorno seja um valor numérico, mas se ele for passado como string, ao invés de somar ele será concatenado.
dynamic a=”hello”;
dynamic b=”world”;
return a + b;
A variável dynamic sempre predominará dentro de operação, como no código abaixo:
dynamic a = 1;
var count = a + 1;
A variável count não será um valor inteiro e sim um Dynamic.
Dynamic Language Runtime é chamado de DLR e é uma nova API do framework 4.0. Ele fornece infra-estrutura que suporta o tipo dinâmico em C# e também a linguagem de programação como IronPython e IronRuby. O DLR tem um excelente mecanismo de cachê que aumenta consideravelmente o transporte em tempo de execução.
Você também pode criar seu próprio objeto dinâmico, usando a interface IDynamicObject que permite interagir com o DLR.
Fica sem sentido essa nova funcionalidade se usarmos de maneira simples, mas se utilizarmos com outras novidades, que falarei mais adiante, você terá todo o poder dessa nova feature.
Nos próximos artigos irei falar sobre as outras features.
http://www.nandosilva.com
Até logo.