我们可以在面向 .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 框架的一部分)中找到。
可以说,查询语法不能“开箱即用”,但是,如果使用 3rd 方 DLL(如LINQBridge),则可以使用它。此 DLL 有效地重新实现了在以 .NET 2.0 框架为目标时执行 LINQ 所需的许多“缺失”类型。它还实现了扩展方法工作所需的“ExtensionAttribute”类型,因此只需从项目中添加/引用 LINQBridge DLL 即可启用 LINQ、查询语法/表达式和扩展方法!