在我的项目中,一些开发人员在参数列表中添加了具有可选参数的方法:
public static string GeneratetPopupCall(string pageName,bool withEscapeChar = false)
我知道可选参数是C#4.0的一部分。 但我们的项目针对.net 3.5。 (C#3.0)
我的问题是:
如果3.5不支持可选参数,为什么会编译?为什么没有编译或语法错误?
答案 0 :(得分:7)
您使用的是针对3.5框架的4.0 编译器。
这将编译为兼容运行时2.0的IL。
答案 1 :(得分:2)
只要您使用Visual Studio 2010
,您就可以使用可选参数,即使是较早的.NET Frameworks
,也可以使用4.0。
可以找到的信息越多here
答案 2 :(得分:1)
在Visual Studio中,您可以指定给定项目的语言版本(项目属性 - >构建 - >高级)。 Visual Studio使用v4.0编译器来定位框架的v3.5。
虽然这有效,但在其他情况下可能会引起问题。例如,调用不同版本的编译器的自动构建环境显然会失败。需要注意的事项......