Posso darti una risposta che funziona in entrambe le direzioni.
Da un lato, non c'è niente come una buona conoscenza del linguaggio assembly per insegnare come funziona davvero un computer. MSIL è, in una certa misura, un linguaggio di assemblaggio. Dal lato negativo, ci sono pochissime opportunità di fare questo tipo di sviluppo più.
D'altra parte, il ricorso a MSIL per risolvere un problema non è necessariamente il modo più diretto o educativo per comprendere un problema. In cinque anni di programmazione .NET, non ho mai sentito il bisogno di andare lì. Solo una volta un collega (che aveva lavorato a Microsoft sui test del compilatore) è andato là con un problema che stavo cercando di risolvere, e alla fine la sua risposta era fuorviante, perché il vero problema era basato sulla progettazione e sui vincoli CLR . Una migliore conoscenza di CLR e C# avrebbe portato a una migliore comprensione e una soluzione reale.
(Nel caso ve lo stiate chiedendo, il problema era che volevo usare "come" per un casting sicuro con un generico. "Come" non ha funzionato, ma "è" fatto. Il mio collega ha notato che "is" e "as" usano lo stesso MSIL Il vero problema è che "as" funziona solo per il cast delle classi, e senza il vincolo appropriato nella dichiarazione generica, C# non sa se il tuo tipo generico sarà una classe. In effetti, i tipi che stavo usando con i generici erano di valore.
Piuttosto che andare per le competenze MSIL, consiglio vivamente il libro di Jeffrey Richter CLR via C#. Anche dopo anni di scavo duro in C#, questo libro è ancora pieno di rivelazioni - imparo qualcosa da ogni pagina.
fonte
2010-09-08 01:20:52
Haha, "Dove posso saperne di più su questa roba e impressionare tutti intorno a me." Queste sono due * completamente * diverse domande, amico mio;) A meno che non esca esclusivamente con i nerd (come me), immagino ... –