【发布时间】:2009-09-10 10:29:58
【问题描述】:
我们可以在面向 .Net 2.0 框架的应用程序中使用哪些 C# 3.0 语言功能?
PS:我知道很少有人喜欢 Lambda 表达式和 var 关键字
【问题讨论】:
标签: c# .net-3.5 .net-2.0 compatibility
我们可以在面向 .Net 2.0 框架的应用程序中使用哪些 C# 3.0 语言功能?
PS:我知道很少有人喜欢 Lambda 表达式和 var 关键字
【问题讨论】:
标签: c# .net-3.5 .net-2.0 compatibility
我有一个article on this very topic。
简而言之:
支持:
部分支持:
不支持:
事实上,我听说可以借助 Mono 的 System.Core 实现转换成表达式树。不过我还没有尝试过……我一直想这样做(然后更新页面)。
【讨论】:
请看这里:
Using C# 3.0 (.Net 3.5) syntax in a .Net 2.0 application
全面了解针对 .NET 2.0 Framework 和使用 C# 3.0 时可以做什么和不可以做什么。
总结:
扩展方法有点工作,但是,它们需要“System.Runtime.CompilerServices.ExtensionAttribute”才能工作,并且这种类型可以在 System.Core DLL 中找到(严格来说,它不是 .NET 2.0 的一部分框架)。
可以说,查询语法不能“开箱即用”,但是,如果使用第 3 方 DLL(如 LINQBridge),则可以使用它。此 DLL 有效地重新实现了在以 .NET 2.0 框架为目标时执行 LINQ 所需的许多“缺失”类型。它还实现了扩展方法工作所需的“ExtensionAttribute”类型,因此只需从项目中添加/引用 LINQBridge DLL 即可启用 LINQ、查询语法/表达式和扩展方法!
【讨论】: