2010-11-04 9 views
5

Sé que hasta 3.5, .Net usa el código de bytes definido en .Net 2.0.¿Ha cambiado CIL (Common Intermediate Language) para .Net 4.0?

Me pregunto si el nuevo código de 4.0 bytes cambia o no. ¡Gracias!

Como el último archivo estándar de ECMA sigue siendo el 2006, sospecho que el 4.0 no cambia el código de bytes.

EDIT: Hice una pequeña búsqueda en la web y encontré que CIL son .Net bytecode son cosas diferentes. Según tengo entendido, el bytecode de CIL a .Net es como un código automático. Entonces mi pregunta aún se cumple, ¿el CIL/Bytecode cambia?

+0

posible duplicado de [Diferencia entre CLR 2,0 y CLR 4.0] (http://stackoverflow.com/questions/1626368/difference-between-clr-2-0-and-clr- 4-0) –

+0

No realmente. Esa pregunta es sobre los cambios al CLR, no al CIL. De hecho, solo una de las respuestas menciona CIL, y solo para indicar que el que responde no "cree" que hay nuevas instrucciones. –

+1

Todo lo que significa la versión estándar de ECMA es que Microsoft no ha enviado una nueva. La versión estándar de ECMA para C# no ha cambiado desde C# 2.0, pero todos sabemos que hubo cambios significativos en C# 3.0 (lambdas, inferencia de tipo de variable local, tipos estructurales anónimos, comprensión de consultas LINQ) y C# 4.0 (co-genérico) y contravariancia, 'dinámico'). –

Respuesta

7

Sí, el CLR se ha cambiado:

Desde la página .NET Framework Versions and Dependencies:

.NET Framework versión 4: Incluye una nueva versión del CLR, bibliotecas de clases base expandida, y las nuevas características tales como el Managed Extensibility Framework (MEF), el lenguaje dinámico de ejecución (DLR) y el código se contrae.

En cuanto a los cambios en el CIL (MSIL), el más cercano que vine es que no hay cambios en la clase System.Reflection.Emit.OpCodes, que deben describir todos los códigos de operación disponibles. Lo verifiqué comparando la versión de la documentación 4.0 con la versión de la documentación 3.5.

+0

-1. Esa no era la pregunta. –

+0

Estás en lo cierto. Encuentro que es muy difícil encontrar información concreta sobre esto, aparte de la clase 'OpCodes'; respuesta expandida con esta información. –

-1

Sí. Ahora hay CLR versión 4.0. Esta es la última versión es 4.6.

favor refiérase a https://msdn.microsoft.com/en-us/library/8bs2ecf4(v=vs.110).aspx

+0

Si bien esto podría responder teóricamente a la pregunta, [sería preferible] (// meta.stackoverflow.com/q/8259) incluir aquí las partes esenciales de la respuesta y proporcionar el enlace de referencia. – Raju

Cuestiones relacionadas