我之前听说过.Net 3.5没有对它编译的IL进行任何更改。在考虑了我所知道的所有编译器功能之后,实际上看起来它们都可以在同一个旧IL中实现,但我找不到官方来源来证实这一说法。这是真的吗?
答案 0 :(得分:5)
我认为没有任何IL更改,但已经在CLR实现中发生了重大变化,以使动态方法更有效,允许我似乎记得在构建动态方法的安全性方面已经发生了变化,使得生成表达式树的lambda表达式即使在相对较低的信任环境中也可以调用私有方法。编译器知道调用私有方法是有效的,因为编译源代码的点可以访问它。虽然证明这很棘手:)请参阅this note by Eric Lippert。
答案 1 :(得分:0)
自.NET 2.0以来,发货CLR(版本2.0.50727)没有变化,因此您的IL完全相同。 (另见this SO QA)
答案 2 :(得分:0)
..因此,如果您愿意,只要使用最新的编译器,就可以在.NET 2.0项目中使用很多.NET 3.5功能: