1

我有一个函数,它使用 out 参数向调用者返回多个值。我想在函数中初始化它们,但我不确定这是否是个坏主意,因为您不知道何时调用该函数会立即更改值。调用者可能会假设,在函数返回后,如果它所做的任何事情都不起作用,那么值将是它们在调用者中初始化的任何值。

我可以在函数中初始化吗?

例子:

public static void SomeFunction(int ixID, out string sSomething)
{
    sSomething = "";
    sSomething = something(ixID);

    if (sSomething = "")
    {
        somethingelse();
        sSomething = "bar"
    }
}
4

2 回答 2

4

是的 - 使用 out 参数,您必须在返回之前分配它。

尽管作为输出参数传递的变量在传递之前不需要初始化,但调用方法需要在方法返回之前分配一个值。

不过,您不需要在函数的最顶部将它们初始化为空值。当您知道它们时,您可以分配这些值。在您的示例中,当您分配给第二行中的 out 参数时,不需要第一行。

于 2010-03-09T20:21:54.147 回答
0

我很确定答案是肯定的,您应该在函数中初始化它们,因为当我在 Q 中涂鸦示例时,Visual Studio 抱怨说我必须sSomething在返回之前分配。

于 2010-03-09T20:18:18.280 回答