我们可以在针对.Net 2.0框架的应用程序中使用哪些C# 3.0语言特性?
PS:我知道一些,比如Lambda表达式和var
关键字。
我们可以在针对.Net 2.0框架的应用程序中使用哪些C# 3.0语言特性?
PS:我知道一些,比如Lambda表达式和var
关键字。
我有一篇关于这个话题的文章。
简而言之:
支持:
部分支持:
不支持:
实际上,我听说借助Mono的System.Core
实现,转换为表达式树是可用的。虽然我还没有尝试过...我一直想这么做(然后更新页面)。
在.NET 2.0应用程序中使用C#3.0(.Net 3.5)语法
了解在针对.NET 2.0框架并使用C#3.0时可以做什么和不能做什么的完整运行过程。
总结:
扩展方法有点可行,但是需要“System.Runtime.CompilerServices.ExtensionAttribute”才能工作,并且此类型在System.Core DLL中找到(严格来说不属于.NET 2.0框架)。
Query Syntax不能直接使用,但是如果使用第三方DLL(例如LINQBridge),则可以使用。该DLL有效地重新实现了许多您在针对.NET 2.0框架时执行LINQ所需的“缺少”的类型。它还实现了“ExtensionAttribute”类型,以便Extension Methods可以工作,因此只需将LINQBridge DLL添加/引用到您的项目中即可启用LINQ,Query Syntax /表达式和Extension Methods!