没有给出“出局”的论点

时间:2012-05-21 03:19:28

标签: c#

可以将默认值分配给函数的正常参数,例如

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);

这是否可行,或者如果没有,有什么好的解决方法?感谢。

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,您必须自己处理参数