A lo largo de este sitio, suelo ver a las personas responder preguntas con respuestas como "funciona así porque el compilador reemplaza [cosa] por [otra cosa]", entonces mi pregunta es, ¿cómo la gente sabe/aprende esto? ¿Dónde puedo aprender estas cosas?¿Dónde puedo leer lo que hace el compilador C#?
Respuesta
La fuente más definitiva de cómo el compilador de C# interpreta el código es la especificación del lenguaje C#.
también los siguientes blogs proporcionan una gran cantidad de visión más clara en el lenguaje C#. lectura obligatoria para cualquier persona que quiere convertirse en un experto en el idioma
Una técnica consiste en compilar el código, y luego descompilarlo el uso de herramientas tales como ILSpy. Utilizando una herramienta de este tipo, puede ver IL sin procesar y ver por usted mismo lo que produce el compilador.
Además de verificar el Idioma Intermedio y leer las especificaciones del lenguaje, permítame agregar "CLR a través de C#" de Jeffrey Richter. Número de control de la Biblioteca del Congreso de Microsoft Press: 2009943026. Esta referencia es sorprendente y detalla completamente lo que sucede bajo las carátulas.
El libro de Niklaus Wirth Compiler Construction (PDF) es una introducción a la teoría y las técnicas de construcción de compiladores. Le da una idea general de qué es un compilador y qué hace.
Además de las otras respuestas, me gustaría mencionar que LINQPad es mi herramienta favorita para inspeccionar IL en busca de fragmentos rápidos.
Puede escribir un fragmento de código e inmediatamente ver el IL.
Es, de lejos, la herramienta más fácil de usar, y puede realizar cambios y ver los resultados al instante.
- 1. adición de cadenas en C#, ¿cómo lo hace el compilador?
- 2. compilador C desde dónde?
- 3. lo que hace "@" significa en C#
- 4. ¿Por qué hace esto lo que hace?
- 5. Vea lo que hace el preprocesador
- 6. Optimización del compilador que hace que el rendimiento se ralentice
- 7. ¿Dónde puedo obtener el compilador F # y FSI v4.0?
- 8. Volver a lo básico - C Error # compilador
- 9. Lo que lo hace un PaaS no SaaS - o ejemplos
- 10. ¿Dónde puedo encontrar un compilador C que cumpla con los estándares para Windows?
- 11. ¿Qué hace el compilador de C con bitfields?
- 12. ¿mysqldump --password realmente hace lo que dice?
- 13. Acerca de "estático" en C, ¿cómo lo implementa el compilador?
- 14. Lo hace por (;;) significa en C#
- 15. lo que hace `super()` `en __new__`
- 16. ¿Dónde leer sobre programación?
- 17. ¿Dónde puedo leer en el operador "->" de haskell?
- 18. Objective-C Llamar a un selector que el compilador no creer que existe (aunque sabemos que hace)
- 19. ¿Qué es lo primero que hace cuando instala Visual Studio?
- 20. ¿Dónde almacena el compilador Scala ASTs?
- 21. ¿Dónde puedo ver el C++ estándar
- 22. ¿Dónde está el compilador de C ubicado en el disco para Visual C++ 2008 Express?
- 23. C# ubicación de las declaraciones de importación, lo que hace que StyleCop sea feliz
- 24. ¿Cómo puedo hacer que un proceso hijo salga cuando lo hace el padre?
- 25. ¿Cómo lo hace AQTime?
- 26. Lo que hace que algo sea iterable en python
- 27. ¿Qué es lo que realmente hace un sistema operativo?
- 28. ¿Alguien puede explicar lo que hace el C# "Func <T,T>"?
- 29. ¿Por qué Y hace lo mismo que yy?
- 30. compiladores + referencias entre clases: ¿cómo hace javac rápidamente lo que los compiladores C++ hacen lentamente?
Necesita conocer el apretón de manos secreto. – ChaosPandion
http://www.dotnetperls.com/compiler –
[Especificación del lenguaje C#] (http://msdn.microsoft.com/en-us/library/ms228593.aspx) y [Reflectores] (http: // stackoverflow. com/questions/2425973/open-source-alternatives-to-reflector) –