gpt4 book ai didi

C# 4.0 和 .Net 3.5

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

因此,我们终于在一些开发人员站上安装了 VS2010,并且可以使用 C# 4.0 功能。尽管我们开发的大部分内容暂时仍将针对 .Net 3.5。

当我开始一个新项目并将目标设置为 .Net 3.5 时,它仍然允许我使用 C# 4.0,例如 dynamic。因此,您能否在面向 .net 3.5 的同时使用 C#4.0 功能,这些功能能否在 .Net 4.0 不可用的环境中工作?

谢谢。

最佳答案

dynamic 如果您以 .NET 3.5 框架为目标,代码将无法编译。

为了更清楚,编译器将允许您定义分配一个动态变量,例如:

dynamic x = 3;

这一行代码可以编译,因为就类型而言,dynamic 仅编译为 object。但是,如果您随后尝试对该变量任何事情,如:

Console.WriteLine(x);

... 那么编译器将不得不生成代码来发现/强制转换真实类型,这是它做不到的;你会得到以下编译错误:

  1. Predefined type 'Microsoft.CSharp.RuntimeBinder.Binder' is not defined or imported
  2. One or more types required to compile a dynamic expression cannot be found. Are you missing references to Microsoft.CSharp.dll and System.Core.dll?

C# 4 编译器依赖于 DLR,特别是 Microsoft.CSharp 程序集来处理与dynamic 相关的所有内容。这些在 .NET 3.5 中不可用。所以答案是否定的,当目标框架版本 3.5 时,您不能使用 dynamic

关于C# 4.0 和 .Net 3.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6218245/

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