繁体   English   中英

C# 4.0 和.Net 3.5

[英]C# 4.0 and .Net 3.5

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

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

谢谢。

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

更清楚地说,编译器将允许您定义分配dynamic变量,例如:

dynamic x = 3;

那一行代码将编译,因为就类型而言, dynamic只是编译为object 但是,如果您随后尝试对该变量执行任何操作,例如:

Console.WriteLine(x);

...然后编译器将不得不生成代码来发现/强制它无法做到的真实类型; 你会得到以下编译错误:

  1. 未定义或导入预定义类型“Microsoft.CSharp.RuntimeBinder.Binder”
  2. 找不到编译动态表达式所需的一种或多种类型。 您是否缺少对 Microsoft.CSharp.dll 和 System.Core.dll 的引用?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM