2010-05-06 8 views
5

Pensi che il nuovo tipo dinamico per C# sia un serio svantaggio per quanto riguarda i vantaggi di un linguaggio tipizzato forte o ritieni che i vantaggi (come aggirare quelle riflessioni) superino i rischi?Tipi dinamici C#: paradiso o inferno?

risposta

5

L'utilizzo principale della parola chiave dinamica sembra essere per l'interazione ASP.NET in cui si sta lavorando con un linguaggio tipizzato debole come Javascript, o per il passaggio di parametri all'interno di classi helper ASP.NET MVC in una vista.

Non penso che nessun programmatore C# esperto inizi a usarlo per la sostituzione del sistema di tipi, e se lo facessero verrebbero abbattuti abbastanza rapidamente.

6

Finché non viene utilizzato nei luoghi sbagliati, penso che sia una grande aggiunta al linguaggio e al framework. Usare la dinamica solo perché il tuo pigro è una brutta cosa ma quando ne hai veramente bisogno (COM, interazione con javascript e cos'altro hai) è fantastico!

0

Se usato con parsimonia e con cura, trovo che sia un'aggiunta preziosa. Come menzionato da @JWL_, l'associazione COM in C# era dolorosa prima della dinamica.

Run-time overload resolution è un'altra area in cui la luce brilla. Quando si desidera elaborare in modo polimorfico i discendenti di un tipo di base e non si controlla la gerarchia, ciò elimina la necessità di una grande istruzione switch con il cast. Notare che è possibile intercettare l'eccezione di runtime specifica.

Ho incontrato questo quando si implementa TrackingParticipant.Track in WF4. Il tuo codice deve conoscere il tipo di runtime dello TrackingRecord (see the partial hierarchy).