我正在寻找使用 C# 4.0 的新可选参数功能的库,但我想将它定位到 3.5 版本的框架。这可能吗?
可选参数的语法糖是否与扩展方法相同?
我正在寻找使用 C# 4.0 的新可选参数功能的库,但我想将它定位到 3.5 版本的框架。这可能吗?
可选参数的语法糖是否与扩展方法相同?
使用 VS2010 RC,我能够创建一个使用 C# 中的可选参数的 .NET 3.5 应用程序。
所以是的,这都是关于语法糖的。
VS 2010 支持 C# 中用于 .NET 3.5 解决方案的可选参数。然而,一个警告是命令行编译器会报告错误。
所以,如果你在运行中自动构建——使用 NANT 或使用命令行编译器的其他东西——你的构建将失败。
像 Jon Skeet 一样,我得到“无法使用功能‘可选参数’,因为它不是 3.0 C# 语言规范的一部分”。但是,在 Visual Studio 的 RTM 版本中,您可以在 Project Properties->Build->Advanced 中选择 Language Version 为“默认”。这让它为我工作。
只要程序集是在 v4 (fe VS2010) 的开发环境中构建的,您就可以在先前版本的目标框架中使用可选参数和命名参数。但是您应该注意运行时编译或发布网站,在这种情况下将使用目标框架的编译器。而且由于旧框架的编译器不理解可选参数和命名参数的语法,因此会导致编译器错误。
转到项目属性->构建选项卡->单击按钮“高级”->将语言版本设置为“默认”->保存->开心;)
我没有在这里安装 VS2010 来检查,但我相信这纯粹是一种语言功能,因此无论目标框架如何,都应该可用。
编辑:查看此链接(以及其他一些链接),似乎可选参数编译为具有 [opt] 属性的方法参数。我不知道这个参数是否存在于以前版本的 clr 中,但我仍然猜测它确实存在。
如果您想在 .NET 3.5 中使用可选参数,VB.NET 有可选参数。