32

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

可选参数的语法糖是否与扩展方法相同?

4

7 回答 7

26

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

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

于 2010-03-01T09:38:29.447 回答
13

VS 2010 支持 C# 中用于 .NET 3.5 解决方案的可选参数。然而,一个警告是命令行编译器会报告错误。

所以,如果你在运行中自动构建——使用 NANT 或使用命令行编译器的其他东西——你的构建将失败。

于 2010-06-04T06:18:51.093 回答
5

像 Jon Skeet 一样,我得到“无法使用功能‘可选参数’,因为它不是 3.0 C# 语言规范的一部分”。但是,在 Visual Studio 的 RTM 版本中,您可以在 Project Properties->Build->Advanced 中选择 Language Version 为“默认”。这让它为我工作。

于 2010-07-12T14:45:10.773 回答
3

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

于 2011-04-21T09:34:08.083 回答
3

转到项目属性->构建选项卡->单击按钮“高级”->将语言版本设置为“默认”->保存->开心;)

于 2011-11-30T11:20:57.683 回答
2

我没有在这里安装 VS2010 来检查,但我相信这纯粹是一种语言功能,因此无论目标框架如何,都应该可用。

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

于 2009-07-31T04:27:07.183 回答
0

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

于 2009-07-31T04:29:33.217 回答