【发布时间】:2020-03-26 11:00:46
【问题描述】:
我不明白为什么这个函数是这样写的:
System.Array.Resize<int>(ref int[], int)
如果数组默认通过引用传递 为什么不是这样写的:
System.Array.Resize<int>(int[], int)
【问题讨论】:
-
他们不是。数组是引用类型,引用传递是不一样的
-
这能回答你的问题吗? Passing Objects By Reference or Value in C#
-
如果 Resize 方法成功,那么变量将指向不同的数组 - 调整大小的数组。这是因为使用 ref 参数您将传递对数组引用的引用,因此在方法主体中您可以修改数组引用本身。使用常规参数这是不可能的 - 对数组的引用是通过(通过复制)传递的,因此即使您在方法主体中修改它,您也会对复制的引用进行操作,而不是原始引用。
标签: c# arrays function ref modifier