与所有的 out 参数一样,在使用数组类型的 out 参数前必须先为其赋值,即必须由被调用方为其赋值。例如:

C# CopyCode image复制代码
static void TestMethod1(out int[] arr)
{
    arr = new int[10];   // definite assignment of arr
}

与所有的 ref 参数一样,数组类型的 ref 参数必须由调用方明确赋值。因此不需要由接受方明确赋值。可以将数组类型的 ref 参数更改为调用的结果。例如,可以为数组赋以 null 值,或将其初始化为另一个数组。例如:

C# CopyCode image复制代码
static void TestMethod2(ref int[] arr)
{
    arr = new int[10];   // arr initialized to a different array
}

下面的两个示例说明 outref 在将数组传递给方法时的用法差异。

Expand 图像示例 1

Expand 图像输出 1

Expand 图像示例 2

Expand 图像输出 2

Expand image请参见