less than 1 minute read

Talvez uma das novidades mais comentadas do novo C# seja o dinamismo acrescido à linguagem. Capaz de expor membros de classe (tais como propriedades ou métodos) em “run time” ao invés de “compile time”. Mas como isso funciona na prática? Vejamos o exemplo a seguir:

using System;
using System.Dynamic;

namespace VS2010.Console
{
    class Program
    {
        static void Main(string[] args)
        {
            dynamic dyn = 1;
            object obj = 1;

            dyn = dyn + 3;
            obj = obj + 3;

            System.Console.WriteLine(dyn.GetType());
            System.Console.WriteLine(obj.GetType());

            System.Console.ReadKey();
        }
    }
}

Um erro de compilação ocorre na linha 14 indicando que não é possível a operação de soma de um inteiro com um object. Contudo o erro não ocorre na linha 13, porque a variável dyn foi declarada como dynamic e não é checada em tempo de compilação. Esse recurso é bem interessante, pois pode permitir acesso direto as propriedades do HTML DOM, por exemplo, usando a sua sintaxe. Esse tipo de conceito é bem familiar para desenvolvedores Ruby e Phyton e agora os desenvolvedores .NET poderão aprender esse novo paradigma de pogramação. Abaixo vemos um diagrama da arquitetura de linguagem dinâmica do .NET.

Dd233052_DLR_ArchOverview(en-us,VS_100)