Ho appena letto un capitolo in un libro di programmazione sui tipi dinamici. Sebbene siano abbastanza accurati, non posso pensare ad un singolo esempio del mondo reale in cui li userò. Qualcuno qui effettivamente li usa e per cosa?
Ho appena letto un capitolo in un libro di programmazione sui tipi dinamici. Sebbene siano abbastanza accurati, non posso pensare ad un singolo esempio del mondo reale in cui li userò. Qualcuno qui effettivamente li usa e per cosa?
Ho usato dynamic
per valutare le espressioni logiche rappresentate in un grafico oggetto, dove l'utilizzo della parola chiave dynamic
mi ha permesso di ignorare in gran parte i tipi di operandi.
Ad esempio, se il mio grafico di espressione fosse un'espressione aritmetica con un operatore di moltiplicazione (ad esempio 12 * 1.3
), userei dynamic
per memorizzare gli operandi 12
e 1.3
, e dynamic
di nuovo per catturare il risultato della moltiplicazione.
Senza dynamic
Sarei costretto ad affrontare tipi di numeri concreti ( int
/ long
/ decimal
/ float
, ecc ...) e il codice risultante aumenta. La mia soluzione dynamic
richiede pochissimo codice ed è molto più facile da capire e mantenere.
La mia idea iniziale era di trasformare le mie espressioni logiche in snippet di Python o Ruby, quindi eseguire questi snippet tramite IronPython o IronRuby per valutare il risultato. Mi ha colpito tutto ciò che richiedevo da Python o Ruby era la loro digitazione dinamica, quindi sono stato molto felice di vedere che dynamic
offre una digitazione simile a Python per C #.
Oltre alle precedenti risposte relative ai linguaggi dinamici, la digitazione dinamica in C # semplifica anche molto il dolore quando si interopera con COM - ad es. consulta questo articolo MSDN o scorri fino alla fine di è pubblicato sul blog di Chris Burrows .
I cant think of a single real world example where I would use them
È una struttura, non si tratta sempre di te. Nel caso di dynamic
un sacco del supporto è venuto dalla necessità di supportare linguaggi più dinamici nel CLR, come F # o IronPython. Il fatto che aiuti a ridurre il codice in altri modi è un ulteriore vantaggio.
Leggi altre domande sui tag c# dynamic-typing