繁体   English   中英

我可以在针对.Net 3.5的项目中使用所有C#4.0功能吗?

[英]Can I use all C# 4.0 features in a project that targets .Net 3.5?

开发环境: - VS2010 - .Net Framework 4.0,3.5,2.0

分段和生产环境: - .Net Framework 3.5,2.0

我正在研究的项目是针对.Net Framework 3.5。 今天我在这个项目中使用了可选参数功能,这是C#4的新功能,它工作正常。 我认为VS2010正在使用C#4编译器,并且正在使用可选参数将该方法编译为IL中相应的重载方法。

我想知道我是否也可以使用所有新的C#4功能。

你不能使用是dynamic功能。 这依赖于C#运行时和DLR DLL,它们仅在4.0版本的.Net框架上可用。 DLR的版本可用于3.5,但我不认为它们与C#编译器所需的版本兼容。

此外,您无法在向下目标场景中使用NoPIA /嵌入式互操作类型。 此功能需要4.0中添加的CLR支持。

在Visual Studio 2010中进行向下定位的好处是,您不必了解每个限制。 如果您的项目设置为目标3.5,并且您使用不兼容的功能,Visual Studio将产生错误。

实际上,几个星期前我碰到了这个。 我使用了可选参数,即使该项目的目标是.net 3.5。 您需要非常小心,因为如果您在仅安装了.net 3.5运行时的计算机上安装该应用程序,那么您的程序可能无法运行。 在我的情况下,我使用了可选的params,而夜间构建服务器只安装了3.5,因此构建失败。

暂无
暂无

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

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