Framework 4.0 – Dynamics

Oggi ho preso a smanettare un po’ con i dynamics.

Il Framework 4.0 introduce un nuovo tipo, il tipo Dynamic.
L’introduzione di questo tipo avvicina C# ai paradigmi della programmazione dinamica, migliorando sia la programmazione Office sia l’interoperabilità con oggetti dinamici scritti, per esempio in IronRuby, IronPython o JScript.

Tutto cio è possibile utilizzando la keyword Dynamic, vediamo un piccolo esempio :

E’ importante comprendere che una variabile dinamica viene elaborata completamente a runtime è per questo che visual studio non permette l’utilizzo di intellisense, ne tantomeno il compilatore puo verificare se il codice scritto è pertinente o meno vediamo uno screenshot :

Molti di voi che non hanno mai sentito parlare di dynamic e/o dynamic lookup si staranno chiedendo a che serve quella keyword se la stessa operazione possiamo eseguirla utilizzando la keyword var? Vediamo le differenze con un’altro esempio :

Come potete notare, è possibile assegnare ad “a” qualsiasi valore di qualsiasi tipo ogni qual volta si vuole a differenza della variabile “b” che una volta inizializzata a 3, è del tutto tipizzata (intero).

I tipi dinamici si possono utilizzare non solo attraverso la dichiarazione di variabili, ma anche ad esempio come tipi o parametri di una funzione :

I Dynamic sono uno strumento potentissimo che è stato introdotto in C#,ricordo che in vb.net operazioni del genere sono possibili dichiarando variabili senza tipo e disabilitando Option strict, ma non ha solo pregi, infatti questo tipo di programmazione include due problematiche principali :

1) Il calo delle prestazioni : tutto le operazione legate i tipi dinamici vengono definiti a run-time con un pesante calo prestazionale da parte del programma;
2) Inesistenza di riferimenti da parte dell’ambiente di sviluppo : come dicevo prima visual studio non è in grado di creare un’elenco intellisense per i tipi dinamici.

Detto questo resta a voi liberare la fantasia e sviluppare dinamicamente (e ricordate, quando è necessario!!) i vostri progetti!

Spero al piu presto di inserire mini progetti riguardanti dynamic e interoperabilità con Office, python e correlati.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...