假设我们有两个方法:
public void foo(int a, int b, bool c = false)
{
//some code
}
public void foo(int a, int b, bool d, bool c = false)
{
//some other code
}
当我打电话foo(1,2,true)
它是指第一种方法。 有什么办法,只透过3个参数来调用第二个方法?
我发现在生产代码是这样的:/
假设我们有两个方法:
public void foo(int a, int b, bool c = false)
{
//some code
}
public void foo(int a, int b, bool d, bool c = false)
{
//some other code
}
当我打电话foo(1,2,true)
它是指第一种方法。 有什么办法,只透过3个参数来调用第二个方法?
我发现在生产代码是这样的:/
foo(1,2,d:true); //will call the second method.
命名参数只是一个参数,使用默认值。
在您提交的代码,你只需overload
。 注意参数的数量(非命名)是不同的。
其他的问题可能是:
我可以做这样的事情?
public void foo(int a, int b, bool c)
{
//some code
}
public void foo(int a, int b, bool c = false)
{
//some other code
}
答:不,你不能。 因为,正如我所说,命名参数,只是用默认值普通的参数,所以这不会编译,因为已经有一个方法具有完全相同的签名。