BT

LINQ e Tipagem Dinâmica

por Jonathan Allen , traduzido por Douglas Masson em 18 Dez 2008 |

A maior característica do C# 3 foi à tecnologia LINQ. Com o C# 4, parece que a tipagem dinâmica vai roubar a cena. Mas você pode usá-los juntos?

Dentre as principais funcionalidades do LINQ está a extensão de métodos. Extensão de métodos permite funcionalidades comuns serem adicionadas a interfaces como a IEnumerable. A Extensão de métodos é basicamente um truque do compilador que utiliza todos os namespaces importados localmente, combinada com a variável do tipo de static para determinar a função apropriada para chamar. Com as variáveis dinâmicas, os tipos de variáveis não sabem até no tempo de execução. Mas a essa altura, informações sobre os namespaces que foram importados estão muito longe.

Funções anônimas são todas importadas para LINQ. Funções anônimas são estaticamente compiladas em C# para uma função real usando o contexto de determinar qual tipo de parâmetro emitir. Sem um tipo conhecido, o compilador teria que emitir um tipo de parâmetros apenas do objeto, algo que normalmente não fazem.

Nenhuma destas limitações são insuperáveis. Não há qualquer razão para que o compilador não possa capturar o contexto de tempo de compilação necessário para determinar a qual o método de extensão vincular. Do mesmo modo, ele poderia emitir as funções anônimas do tipo do objeto e recorrer às chamadas dinâmicas dos métodos e invocação de propriedades. Mas as linguagens evoluem lentamente, e de acordo com Mads Torgersen não existem planos para dar respostas a estas limitações do C# 4.

Você pode descobrir mais sobre o Futuro C#em seu site.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT