c# - C#5.0的哪些特性可以编译运行在.net 4.0上

标签 c# c#-5.0

我预计框架级更新(如异步)将无法编译为在较低的框架上工作,但编译器差异(如 foreach 循环变量范围)在使用 C# 5.0 针对 .净4.0? 谁能提供一份明确的 list ?

编辑:

而不是要求一个明确的列表,我认为这是一个很多要求,任何人都能够回答编译器级别的变化(如 foreach 变量范围)在使用 C# 5.0 时是否会有不同的行为较早的框架版本。

最佳答案

所有这些。没有什么真正需要新的运行时支持——一些功能只需要新的库。但是,您无需针对 .NET 4.5 库进行编译 - 您也可以提供自己对同一 API 的实现。

例如,将以下文件添加到您的项目以在 .NET 4.0 项目中启用对异步/等待的支持:https://gist.github.com/1961087

我还没有尝试使用调用者信息属性,但我很确定即使您自己定义它们而不是使用 .NET 4.5 附带的属性,它们也能正常工作。

同样的技巧适用于 C# 3 中的 class ExtensionAttribute 以在 .NET 2.0 中使用扩展方法,您甚至可以在 .NET 2.0 中使用完整的 LINQ-to-Objects (LinqBridge)

关于c# - C#5.0的哪些特性可以编译运行在.net 4.0上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9789714/

相关文章:

c# - 这是编写异步方法的正确方法吗?

c# - Kendo datagrid 未将排序字段参数发送到服务器(MVC 中的 Controller )

c# - .net 4.0 中的 System.Web.UI.DataVisualization.Charting 丢失错误?

c# - Try-Finally Dispose 和 Using-statement 的区别

c# - 嵌入式 (ASP.NET) Web 服务器

.net - API 设计中的异步抽象方法和派生类

c# - 如何在后面的代码中设置 "{Binding}"?

c# - 嵌套异步/等待方法

c# - C# 中的重载解析、扩展方法和泛型

.net - 在 C# Windows 运行时组件中,如何警告开发人员不要在公共(public)类中使用 ==?