gpt4 book ai didi

c# - 是否有适用于 .Net 3.5 的 C#4.0 更改列表?

转载 作者:IT王子 更新时间:2023-10-29 04:27:09 26 4
gpt4 key购买 nike

我最近看到了很多 C# 4.0 的变化。我真的很喜欢其中的一些。不过,出于兼容性原因,我还不想继续使用 .Net 4.0。

那么,是否有适用于 .Net 3.5 或更低版本的新 C# 4.0 语言功能的完整列表?

例如,默认参数是否需要 .NET 4.0 CLR,或者它们是编译器功能?可以使用自动属性(C# 3.0 功能)并仍然以 .NET 2.0 为目标,因为这不需要 Framework 支持,但不能使用 LINQ 表达式,因为这确实需要 Framework 3.5。

请不要说“当然 C#4.0 不能在 .Net 3.5 中工作,因为它更旧”

最佳答案

4.0 中的 C# 编译器附带了一个新的多目标功能。简短版本是它将生成一个程序集,其中包含定义 System.Object(通常是 mscorlib.dll)的引用中存在的任何元数据版本。这使您可以使用它为 2.0 和 3.5 以及各种版本的 Silverlight 编译程序集。引入此功能是为了支持 Visual Studio 2010 中的多目标。

因此,您可以使用 C# 4.0 编译器编译 3.5 程序集,并使用您想要的任何 C# 4 功能,只要不特别依赖 4.0 库。例如,命名参数和可选参数可以正常工作,因为它们不使用任何 4.0 框架功能。然而,Dynamic 可以,因此开箱即用,它不能在 3.5 上运行。

这里有一篇关于此的帖子,涵盖了基础知识。

http://blogs.msdn.com/ed_maurer/archive/2010/03/31/multi-targeting-and-the-c-and-vb-compilers.aspx

入围名单(来自 Ed 的帖子)是:

  • 命名参数和可选参数
  • 某些 COM 语法改进(例如,“省略引用”)
  • 一般方差

行不通的事情包括动态和 no-pia(我们在实现它们所花费的时间方面的两项最大支出)。前者需要框架支持,后者需要运行时支持。

关于c# - 是否有适用于 .Net 3.5 的 C#4.0 更改列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2561022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com