我正在寻找一个使用C#4.0新的可选参数功能的库,但我希望将它定位到3.5版本的框架。这可能吗?

可选参数语法糖的方式与扩展方法相同吗?

有帮助吗?

解决方案

使用VS2010 RC,我能够创建一个在C#中使用可选参数的.NET 3.5应用程序。

所以是的,这都是关于语法糖的。

其他提示

VS 2010支持C#for .NET 3.5解决方案中的可选参数。但需要注意的是,命令行编译器将报告错误。

因此,如果你有自动构建运行, - 使用NANT或其他使用命令行编译器的东西 - 你的构建将失败。

与Jon Skeet一样,我得到“功能'可选参数'不能使用,因为它不是3.0 C#语言规范的一部分”。但是,在Visual Studio的RTM版本中,您可以选择“语言版本”为“默认”。在项目属性 - >构建 - >高级。这让它对我有用。

只要在v4的开发环境(f.e. VS2010)中构建程序集,就可以在先前版本的目标框架中使用可选参数和命名参数。但是你应该知道运行时编译或发布网站,在这种情况下将使用目标框架的编译器。并且因为旧框架的编译器不理解可选和命名参数的语法,所以会导致编译器错误。

转到项目属性 - >构建标签 - >点击“高级”按钮 - >将语言版本设置为“默认” - >保存 - >快乐;)

我没有安装VS2010进行检查,但我相信这纯粹是一种语言功能,因此无论目标框架是什么,都应该可以使用。

编辑:查看此链接(以及其他一些),似乎可选参数在il中使用[opt]属性编译为方法参数。我不知道这个参数是否存在于以前版本的clr中,但我的猜测仍然是它。

如果要在.NET 3.5中使用可选参数,VB.NET有可选参数。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top