Category Archives: cs3

I Love C# – Anonymous Types

Chega de teoria! #3 – Sem definição estrutural

Vamos conhecer agora as features do C#3 projetadas para nos ajudar na codificação de nossos aplicativos. Vamos lá:

Hoje o C#3 apresenta o terceiro recurso, o Anonimous Types. Este carinha nos permite utilizar objetos com propriedades semelhantes a uma instância de uma classe de modelo, só que sem nenhuma definição estrutural.

Ou seja, ganhamos uma maneira conveniente para encapsular propriedades somente leitura em um único objeto sem precisar primeiro definir um tipo explicitamente.

Aplicabilidade

Eles são muito utilizados em cláusula Select de uma expressão de consulta, normalmente com LINQ, para retornar um subconjunto das propriedades de cada objeto na sequência de origem.

Como isso funciona?

O nome do tipo é gerado pelo compilador e não está disponível no nível do código fonte. O tipo das propriedades é inferido pelo compilador.

cs3_anonymoustype

Veja que não temos a classe employee. Eu crio um tipo, defino 2 propriedades, atribuo e acesso esses valores, sem a criação da classe e sua instância . Isto é Tipos anônimos C#.

Program.cs

O tipo anônimo mais simples do mundo.

A nossa classe de exemplo, a classe Program:

class Program
    {
        static void Main(string[] args)
        {
            var employee = new {Nome = "Wanderson", Endereco="Mobile" };
            Console.WriteLine("Nome={0}, Endereco={1} ", employee.Nome, employee.Endereco);
            Console.ReadKey();
        }
    }

Aqui temos um tipo anônimo sendo inicializado com 2 propriedades Nome e Endereco.