[英]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);
...然后编译器将不得不生成代码来发现/强制它无法做到的真实类型; 你会得到以下编译错误:
- 未定义或导入预定义类型“Microsoft.CSharp.RuntimeBinder.Binder”
- 找不到编译动态表达式所需的一种或多种类型。 您是否缺少对 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.