为什么 C# 中的数组参数要使用 ref ?

2023-11-25

我读了该页使用 ref 和 out 传递数组(C# 编程指南)并想知道为什么当数组参数已经是引用类型时我们需要将其定义为 ref 参数。被调用函数中的更改不会反映在调用函数中吗?


被调用函数中的更改不会反映在调用函数中吗?

更改为contents数组的变化将反映在调用者方法中 - 但是对参数本身不会的。例如:

public void Foo(int[] x)
{
    // The effect of this line is visible to the caller
    x[0] = 10;

    // This line is pointless
    x = new int[] { 20 };
}
...
int[] original = new int[10];
Foo(original);
Console.WriteLine(original[0]); // Prints 10

现在如果我们改变Foo有以下人员的签名:

public void Foo(ref int[] x)

并将调用代码更改为:

Foo(ref original);

那么它会打印 20。

了解变量与其值所引用的对象之间的区别非常重要,同样,理解变量和修改变量之间的区别也非常重要。object并修改一个variable.

See my 关于 C# 参数传递的文章了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 C# 中的数组参数要使用 ref ? 的相关文章

随机推荐