我读了该页使用 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(使用前将#替换为@)