什么是 C#3.0 我们可以在面向 .Net 2.0 框架的应用程序中使用哪些语言功能?

PS:我知道很少有像 Lambda 表达式和 var 关键词

有帮助吗?

解决方案

请看这里:

在 .Net 2.0 应用程序中使用 C# 3.0 (.Net 3.5) 语法

全面了解针对 .NET 2.0 Framework 和使用 C# 3.0 时可以做什么和不能做什么。

总之:

扩展方法可以工作,但是,它们需要“System.Runtime.CompilerServices.ExtensionAttribute”才能工作,并且此类型可以在 System.Core DLL 中找到(严格来说,它不是 .NET 2.0 框架的一部分)。

查询语法不能“开箱即用”,可以这么说,但是,如果有第 3 方 DLL(例如 LINQ桥) 用来。此 DLL 有效地重新实现了以 .NET 2.0 框架为目标时执行 LINQ 所需的许多“缺失”类型。它还实现了扩展方法工作所需的“ExtensionAttribute”类型,因此只需从项目中添加/引用 LINQBridge DLL 即可启用 LINQ、查询语法/表达式和扩展方法!

其他提示

我有一个 关于这个主题的文章.

简单来说:

支持的:

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

部分支持:

  • 扩展方法(需要属性)和查询表达式(需要像 LINQBridge 这样的东西才有用)

不支持:

  • Lambda 转换为表达式树

其实我听说过转换成表达式树 可以借助 Mono 的实现 System.Core. 。不过我还没试过...我一直想这样做(然后更新页面)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top