C # Tipi dinamici

5

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?

    
posta Tom Squires 02.08.2011 - 10:33
fonte

3 risposte

5

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 #.

    
risposta data 02.08.2011 - 13:26
fonte
1

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 .

    
risposta data 02.08.2011 - 17:48
fonte
-1

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.

    
risposta data 02.08.2011 - 13:24
fonte

Leggi altre domande sui tag