错误:传递输出参考时使用未分配的局部变量

时间:2012-09-25 15:51:04

标签: c# pass-by-reference

我在尝试使用函数参数作为返回值时遇到此错误。 我只能找到相关问题的答案,但不能找到这个答案。

示例:

void someNumber(int foo)
{
  foo = 3;
}

int bar;
someNumber(bar);

这里有什么问题?

2 个答案:

答案 0 :(得分:1)

事实证明,C#在这方面有点奇怪,但比C / C ++更奇怪。 :)

如果仅为输出值传递引用,则必须以这种方式显式:

void someNumber(out int foo)
{
  foo = 3;
}

int bar;
someNumber(out bar);

所以,虽然你在输入参数列表中仍然有一个输出参数(至少那是我脑子里的那个),但至少它现在显而易见了。

请注意,现在错误的是不在someNumber的主体中分配给foo。它有点像反常数,显然是一个更酷的关键词。 ;)

答案 1 :(得分:0)

void someNumber(int foo)
{
  foo = 3;
}

int bar;
someNumber(bar);

foo是一个输入参数,因此您无法更改其值..

因为使用了返回功能。

int someNumber(int foo)
{
    foo=3;
    return foo;
}