代码之家  ›  专栏  ›  技术社区  ›  Prashant Cholachagudda

C 3.0在.NET 2.0上的兼容性

  •  4
  • Prashant Cholachagudda  · 技术社区  · 15 年前

    什么是 C 3 我们可以在面向.NET 2.0框架的应用程序中使用的语言功能?

    我知道很少有像lambda表达式和 var 关键字

    2 回复  |  直到 15 年前
        1
  •  4
  •   CraigTP    15 年前

    请看这里:

    Using C# 3.0 (.Net 3.5) syntax in a .Net 2.0 application

    在针对.NET 2.0框架和使用C 3.0时,您可以做和不能做的事情的完整运行。

    综上所述:

    但是,扩展方法需要“system.runtime.compilerservices.extensionattribute”才能工作,并且在system.core dll(它不是.NET 2.0框架的严格组成部分)中找到此类型。

    不能用“开箱即用”的查询语法,但是,如果第三方DLL(如 LINQBridge )。此dll有效地重新实现了许多在针对.NET 2.0框架时需要执行Linq的“缺少”类型。它还实现了扩展方法工作所需的“extensionattribute”类型,因此只要从项目中添加/引用LinqBridge dll,就可以启用Linq、查询语法/表达式和扩展方法!

        2
  •  5
  •   Jon Skeet    15 年前

    我有一个 article on this very topic .

    简言之:

    支持:

    • 自动实现的属性、隐式类型化的局部变量和数组、对象和集合初始值设定项、匿名类型、分部方法、转换为委托类型的lambda表达式。

    部分支持:

    • 扩展方法(需要一个属性)和查询表达式(需要LinqBridge之类的东西才能有用)

    不支持:

    • lambda转换为表达式树

    事实上,我听说过,转换成表达树 在Mono实施 System.Core . 不过我还没试过…我一直想这样做(然后更新页面)。