我很想知道 C#4 中引入的可选参数是否向后兼容?
让我用一个简单的例子来澄清我的问题。假设我在 VS2010 的 .Net2 上用 C#4 编写以下代码:
public void Foo(int val1, int val2, int val3 = 5){ .... }
现在我编译了代码,制作了一个 dll 并将其引用到 .Net2 上的 C#2 / C#3 项目。在代码编辑器中(除了 VS2010,比如 VS2008)我会在智能感知中看到什么?
两个重载方法,例如:
public void Foo(int val1, int val2) public void Foo(int val1, int val2, int val3)
其他类似的东西:
public void Foo(int val1, int val2, int val3) public void Foo(int val1, int val2, int val3 = 5) //VS2008 is not supposed to show this
我应该如何在 C#2 项目中调用 C#4 方法?