我知道直到3.5版本,.Net使用的是在.Net 2.0中定义的字节码。
我想知道新的4.0字节码是否有所改变。谢谢!
由于最新的ECMA标准文件仍然是2006年的版本,我怀疑4.0没有改变字节码。
编辑:我在网上搜索了一下,发现CIL和.Net字节码是不同的东西。我的理解是,CIL对于.Net字节码就像汇编语言对于机器码一样。所以我的问题仍然存在,CIL/字节码是否会改变?
我知道直到3.5版本,.Net使用的是在.Net 2.0中定义的字节码。
我想知道新的4.0字节码是否有所改变。谢谢!
由于最新的ECMA标准文件仍然是2006年的版本,我怀疑4.0没有改变字节码。
编辑:我在网上搜索了一下,发现CIL和.Net字节码是不同的东西。我的理解是,CIL对于.Net字节码就像汇编语言对于机器码一样。所以我的问题仍然存在,CIL/字节码是否会改变?
是的,CLR已经改变:
从.NET Framework Versions and Dependencies页面得知:
.NET Framework版本4:包括一个新版本的CLR、扩展的基类库和新功能,如托管可扩展框架(MEF)、动态语言运行时(DLR)和代码合同。
关于CIL(MSIL)的更改,我找到的最接近的信息是 System.Reflection.Emit.OpCodes
类没有更改,应该描述了所有可用的操作码。我通过将4.0文档版本与3.5文档版本进行比较来验证这一点。
OpCodes
类; 我会在答案中加入这些信息。 - Pieter van Ginkel是的。现在有CLR版本4.0。最新版本是4.6。
请参考https://msdn.microsoft.com/en-us/library/8bs2ecf4(v=vs.110).aspx