我正在寻找一个使用C#4.0新的可选参数功能的库,但我希望将它定位到3.5版本的框架。这可能吗?
可选参数语法糖的方式与扩展方法相同吗?
答案 0 :(得分:25)
使用VS2010 RC,我能够创建一个在C#中使用可选参数的.NET 3.5应用程序。
所以是的,这都是关于语法糖的。
答案 1 :(得分:13)
VS 2010支持C#for .NET 3.5解决方案中的可选参数。但需要注意的是,命令行编译器将报告错误。
因此,如果你有自动构建运行, - 使用NANT或其他使用命令行编译器 - 你的构建将失败。
答案 2 :(得分:5)
与Jon Skeet一样,我得到“功能'可选参数'不能使用,因为它不是3.0 C#语言规范的一部分”。但是,在Visual Studio的RTM版本中,您可以在Project Properties-> Build-> Advanced中选择语言版本为“default”。这让它对我有用。
答案 3 :(得分:3)
只要在v4的开发环境(f.e. VS2010)中构建程序集,就可以在先前版本的目标框架中使用可选参数和命名参数。但是你应该知道运行时编译或发布网站,在这种情况下将使用目标框架的编译器。并且因为旧框架的编译器不理解可选和命名参数的语法,所以会导致编译器错误。
答案 4 :(得分:3)
转到项目属性 - >构建标签 - >点击“高级”按钮 - >将语言版本设置为“默认” - >保存 - >快乐;)
答案 5 :(得分:2)
我没有在这里安装VS2010进行检查,但我相信这纯粹是一种语言功能,因此无论目标框架是什么,都应该可以使用。
编辑:看看这个link(以及其他几个),看来可选参数在il中使用[opt]属性编译为方法参数。我不知道这个参数是否存在于以前版本的clr中,但我的猜测仍然是它。
答案 6 :(得分:0)
如果要在.NET 3.5中使用可选参数,VB.NET有可选参数。