Desenvolvimento - C#
C# 4.0 - Tipos Dinâmicos
Nesse artigo será tratado sobre um funcionalidade bem legal, que acho que vai ajudar bastante nosso dia a dia... Que é Dynamic Typed Objects.
por Fabiano BelmonteOlá Pessoal, ha algum tempo comecei a escrever sobre C# 4.0, acho que já passou da hora de voltar a escrever sobre o assunto.
Hoje vou escrever sobre um funcionalidade bem legal, que acho que vai ajudar bastante nosso dia a dia... Que éDynamic Typed Objects.
Uma feature bem legal do C# 4.0 e o suporte à programação dinâmica, isso e feito através da criação de tipos dinâmicos de objetos, o que acontéce e que esses tipos são resolvidos em tempo de execução e não em tempo de compilação.
O que muda? na declaração da variavel utilizamos a palavra "dynamic". A palavra-chave informa o compilador que o objeto foi declarado de forma dinâmica, deve ser tipado em tempo de execução usando o Dynamic Language Runtime (DLR).
Mais não confunda o"dynamic" com o"var", pois eles não são a mesma coisa!!! Pois o"var" e tipado em tempo de compilação diferente do"dynamic" que e tipado em tempo deexecução... que são bem diferentes.
Vamos fazer alguns exemplos:
Veja um cenário onde você precisa definir propriedades de um objeto, uma dll, e você vai fazer isso utilizandoReflection:
Type TesteObjType = objLib.GetType("Teste.TesteClassLib");
object Classobj= Activator.CreateInstance(TesteObjType);
PropertyInfo pInfo= TesteObjType.GetProperty("Nome");
pInfo.SetValue(Classobj, "Fabiano", null);
Agora vou fazer a mesma coisa utilizando"dynamic" basta mudar a terceira e a ultima linha para:
dynamicTesteObj.Name = "Fabiano";
Simples não é? Vamos ver um slide da palestra do Anders Hejlsberg"s no PDC 2008.
Como podemos ver na figura acima, você pode chamar o método (s), tais como x.ToString (), y.ToLower (), z.Add (1), e ele irá funcionar sem problemas.
Esta é mais feature que nos oferece muitaflexibilidade.
Quero explorar mais o C# 4.0, pretendo fazer isso separando porfeatures...
Aceito sugestão de proxímasfeatures... Deixe um comentario sugerindo!
Espero que gostem...
Bons Codigos...
Fabiano Belmonte