当我尝试使用ref关键字替换关键字时,下面的代码中没有错误。虽然我尝试使用而不是ref,但是会发生错误,例如" 未分配的OUT参数 " 这个错误意味着什么?
static void Main()
{
string test = "34";
addOneToRefParam(out test);
Console.WriteLine("test is : " + test);
}
public static void addOneToRefParam(out string i)
{
int k =Convert.ToInt32(i) + 1;
i = Convert.ToString(k);
Console.WriteLine("i is : " + i);
}
答案 0 :(得分:2)
ref
参数必须在传递给函数之前初始化,函数可能会也可能不会更改参数。因此,您需要在传递之前对其进行初始化,就像使用 non-ref < / em>参数:
int i;
Foo(i); // error unassigned variable
Foo(ref i) // same error
对于out
,您的函数保证它将参数设置为值。因此不需要初始化。