In questo sito, di solito, le persone rispondono a domande con risposte come "funziona così perché il compilatore sostituisce [cosa] con [altra cosa]", quindi la mia domanda è: come fanno le persone a sapere/imparare questo? Dove posso imparare queste cose?Dove posso leggere cosa fa il compilatore C#?
risposta
La fonte più definitiva di come il compilatore C# interpreta il codice è la specifica del linguaggio C#.
anche i seguenti blog offrono un sacco di un quadro più chiaro il linguaggio C#. lettura obbligatoria per chiunque voglia diventare un esperto nel linguaggio
Una tecnica è quella di compilare il codice, e poi decompilare utilizzando strumenti come ILSpy. Usando un tale strumento, puoi visualizzare l'IL grezzo e vedere di persona ciò che il compilatore produce.
Oltre a verificare la lingua intermedia e la lettura delle specifiche della lingua, consentimi di aggiungere "CLR tramite C#" di Jeffrey Richter. Numero di controllo della Library of Congress di Microsoft Press: 2009943026. Questo riferimento è sorprendente e va nel dettaglio completo su ciò che sta accadendo sotto le copertine.
Il libro di Niklaus Wirth Compiler Construction (PDF) è un'introduzione alla teoria e alle tecniche di costruzione del compilatore. Ti dà un'idea generale di cosa sia un compilatore e cosa fa.
In aggiunta alle altre risposte, vorrei menzionare che lo LINQPad è il mio strumento preferito per ispezionare IL per i frammenti rapidi.
È possibile digitare uno snippet di codice e visualizzare immediatamente l'IL.
È lo strumento di gran lunga più semplice da utilizzare e puoi apportare modifiche e visualizzare immediatamente i risultati.
- 1. double.IsNaN - Cosa fa il compilatore qui
- 2. Cosa fa il compilatore C con i bitfield?
- 3. Cosa fa un compilatore JIT?
- 4. Cosa fa il compilatore qui: int a = b * (c * d * + e)?
- 5. Cosa fa esattamente # in C?
- 6. Cosa fa il flag fpermissive?
- 7. C++ - cosa fa [=]?
- 8. Cosa fa? in C?
- 9. Dove posso trovare il compilatore F # e FSI v4.0?
- 10. Cosa fa new() in `dove T: new()?`
- 11. Dove il compilatore memorizza i metodi per le classi C++?
- 12. Cosa fa il segno '$' in C# 6.0?
- 13. Cosa fa il doppio? significa in C#?
- 14. Dove posso leggere sull'operatore haskell "->"?
- 15. Cosa fa "12345" + 2 fa in C?
- 16. Cosa fa il^do?
- 17. cosa fa int() in C++?
- 18. Cosa fa "for (;;)" in C#?
- 19. Come faccio a sapere dove trascorre il tempo il compilatore?
- 20. Posso leggere il FDIS C++ 2011 ovunque?
- 21. Cosa pensa il compilatore dell'istruzione switch?
- 22. Cosa fa !! significare in Objective-C
- 23. Cosa fa il || operatore?
- 24. Cosa fa il file * .exp?
- 25. Cosa fa @NSManaged?
- 26. Cosa fa?
- 27. A cosa serve/ottimizza il codice del compilatore C#?
- 28. Dove posso trovare l'interprete/compilatore del linguaggio Dart?
- 29. Cosa fa l'operatore >> in C#?
- 30. Cosa fa @Transactional?
È necessario conoscere l'handshake segreta. – ChaosPandion
http://www.dotnetperls.com/compiler –
[C# Language Specification] (http://msdn.microsoft.com/en-us/library/ms228593.aspx) e [Reflectors] (http: // stackoverflow. it/questions/2425973/open-source-alternatives-to-reflector) –