奇怪的编译器行为 - 可选参数

Mar*_*acz 3 c# .net-3.5 visual-studio

在我的项目中,一些开发人员在参数列表中添加了可选参数的方法:

public static string GeneratetPopupCall(string pageName,bool withEscapeChar = false)
Run Code Online (Sandbox Code Playgroud)

我知道可选参数是C#4.0的一部分.但我们的项目针对.net 3.5.(C#3.0)

我的问题是:
如果3.5不支持可选参数,为什么要编译?为什么没有编译或语法错误?

Ode*_*ded 7

您正在使用4.0 编译器,针对3.5框架.

这将编译为兼容运行时2.0的IL.