小编Cof*_*est的帖子

为什么我从不直接修改“数组”中的元素,但它却发生了变化?

以下代码更改array变量中的元素。我期待着改变,sortedArray但它同时也改变了。我从来没有array在任何等号的左侧。我从未设置array为任何值,但当我观看时,我在调试器中看到它的变化。

static int[] SortArray(int[] array)
{
    int[] sortedArray = array;

    while (!IsSorted(sortedArray))
    {
        for (int i = 0; i < array.Length-1; i++)
        {
            if( sortedArray[i] > sortedArray[i + 1])
            {
                sortedArray[i] = array[i + 1];
                sortedArray[i + 1] = array[i];
            }
        }
    }

    return sortedArray;
}
Run Code Online (Sandbox Code Playgroud)

SortArray调用该方法之前,array为 (8, 3, 1, 6, 4),方法完成后,array为 (1, 1, 1, 4, 4)。

c# arrays

3
推荐指数
1
解决办法
46
查看次数

标签 统计

arrays ×1

c# ×1