【发布时间】:2021-12-02 10:43:02
【问题描述】:
在 C# 和许多其他语言中,如果将数组传递给函数,它会传递指针/引用,这意味着您可以从函数内部更改数组的值。
来自Microsoft:
数组可以作为参数传递给方法参数。因为数组是引用类型,所以该方法可以改变元素的值。
我有一个特殊情况,我需要通过函数访问和更改数组的内容,但我不想更改原始数组。我认为这会很简单。我可以设置一个等于旧数组的新数组并更改新数组。然而,这也是一样的,因为新数组只是一个指向旧数组的指针。
static void AddToArray(string[] array) {
var newArray = array;
newArray[2] = "y";
}
static void Main(string[] args) {
string[] array = new string[5];
array[0] = "h";
array[1] = "e";
AddToArray(array);
}
如果在每一步都打印array的内容:
"he"
"hey" (inside function)
"hey" (after function call)
我在网上做了很多研究,但不知何故还没有找到很多其他需要帮助的人。非常感谢您的建议!
【问题讨论】: