2010-11-04 67 views
5

Je sais que jusqu'à 3.5, .Net utilise le code octet défini dans .Net 2.0.Le CIL (Common Intermediate Language) a-t-il été modifié pour .Net 4.0?

Je me demande si le nouveau code de 4.0 octets change ou non. Merci!

Comme le dernier fichier standard ECMA est toujours celui de 2006, je suppose que le 4.0 ne change pas le code de byte. J'ai fait une petite recherche sur le web et trouvé que CIL sont .Net bytecode sont des choses différentes. Ma compréhension est que CIL to .Net bytecode est comme asm au code machine. Donc ma question est toujours la même, est-ce que le CIL/Bytecode change?

+0

double possible de [Différence entre CLR 2.0 et 4.0 CLR] (http://stackoverflow.com/questions/1626368/difference-between-clr-2-0-and-clr- 4-0) –

+0

Pas vraiment. Cette question concerne les changements au CLR, pas le CIL. En fait, une seule des réponses mentionne même CIL, et seulement pour indiquer que le répondant ne croit pas qu'il y a de nouvelles instructions. –

+1

Tout ce que la version standard ECMA signifie, c'est que Microsoft n'en a pas soumis un nouveau. La version standard ECMA pour C# n'a pas changé non plus depuis C# 2.0, mais nous savons tous qu'il y avait des changements significatifs dans C# 3.0 (lambdas, inférence de type variable locale, types structurels anonymes, compréhensions de requêtes LINQ) et C# 4.0 (co et contravariance, 'dynamic'). –

Répondre

7

Oui, le CLR a été modifié:

De la .NET Framework Versions and Dependencies page:

version .NET Framework 4: Comprend une nouvelle version du CLR, les bibliothèques de classes de base élargi et de nouvelles fonctionnalités telles comme le MEF (Managed Extensibility Framework), le DLR (Dynamic Language Runtime) et les contrats de code.

En ce qui concerne les modifications au CIL (MSIL), le plus proche je suis est qu'il n'y a pas de changement à la classe System.Reflection.Emit.OpCodes, qui devrait décrire tous les opcodes disponibles. J'ai vérifié cela en comparant la version 4.0 de la documentation avec la version 3.5 de la documentation.

+0

-1. Ce n'était pas la question. –

+0

Vous avez totalement raison. Je trouve qu'il est très difficile de trouver des informations concrètes à ce sujet, autres que la classe 'OpCodes'; réponse élargie avec cette information. –

-1

Oui.Maintenant, il existe CLR version 4.0.La dernière version est 4.6.

S'il vous plaît se référer à https://msdn.microsoft.com/en-us/library/8bs2ecf4(v=vs.110).aspx

+0

Bien que cela puisse théoriquement répondre à la question, [il serait préférable] (// meta.stackoverflow.com/q/8259) d'inclure les parties essentielles de la réponse ici, et de fournir le lien pour référence. – Raju