可以将默认值分配给函数的正常参数,例如
bool SomeFunction(int arg1 = 3, int arg2 = 4)
可以通过以下任何一种方式调用。
bool val = SomeFunction();
bool val = SomeFunction(6);
bool val = SomeFunction(6,8);
有没有办法做类似的事情(除了创建一个未使用的变量),这样
bool SomeOtherFunction(int arg1, out int argOut)
可以通过以下任一方式调用吗?
int outarg;
bool val = SomeOtherFunction(4,outarg);
bool val = SomeOtherFunction(4);
这是否可行,或者如果没有,有什么好的解决方法?感谢。
答案 0 :(得分:6)
一个好的解决方法是:
bool SomeOtherFunction(int arg1, out int argOut){ ... }
bool SomeOtherFunction(int arg1)
{
int dummyArgOut;
return SomeOtherFunction(arg1, dummyArgOut);
}
我甚至会说最佳解决方法。
答案 1 :(得分:1)
是的,使用不带第二个参数的相同方法的重载版本:
public bool SomeOtherFunction(int arg1)
{
int ignore;
return SomeOtherFunction(arg1, out ignore);
}
答案 2 :(得分:0)
不,ref和out参数不能有默认值。解决方法取决于您想要实现的目标。一种方法是将其包装到另一个方法(或重载)中,并从该方法传递out变量。
答案 3 :(得分:-1)
C#中没有默认参数,要做类似的事情,你应该实现重载方法。 或者您可以使用this,您必须自己处理参数