3

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

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

4 回答 4

6

一个好的解决方法是:

bool SomeOtherFunction(int arg1, out int argOut){ ... }

bool SomeOtherFunction(int arg1)
{
    int dummyArgOut;
    return SomeOtherFunction(arg1, dummyArgOut);
}

我什至会说它是最好的解决方法。

于 2012-05-21T03:22:54.090 回答
1

是的,使用不带第二个参数的相同方法的重载版本:

public bool SomeOtherFunction(int arg1)
{
    int ignore;
    return SomeOtherFunction(arg1, out ignore);
}
于 2012-05-21T03:24:19.593 回答
0

不,ref 和 out 参数不能有默认值。解决方法将取决于您想要实现的具体目标。一种方法是将其包装到另一个方法(或重载)中并从该方法传递 out 变量。

于 2012-05-21T03:23:26.240 回答
-1

C#中没有默认参数,要做类似的事情,你应该实现重载方法。或者你可以使用这个,你必须自己处理参数

于 2012-05-21T03:26:32.537 回答