Array.Clear(new [] {1,2,3},0,2)输出[1,z2,z3]

jub*_*nna 1 c# arrays

编辑:更改了System.Array.Clear(new [] {1,2,3},0,2); to System.Array.Clear(numbers,0,2); 但得到输出[0,z0,z3]并期待[0,0,3]

我正在学习C#,目前正在学习数组和Clear().当试图看看使用Clear()时会发生什么,我得到这个输出:

在此输入图像描述

我不明白为什么会这样.不应该是[0,0,3]吗?

我的代码看起来像这样:

Program.cs中

namespace Introduction
{
    internal class Program
    {
        /* MAIN FUNCTION */
        public static void Main()
        {
            // RunControlFlow();
            RunArrays();
        }

        /* ARRAYS */
        public static void RunArrays()
        {
            // Var declaration
            var array = new Arrays.Array();

            array.Manipulation();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Arrays.cs

using System;

namespace Introduction.Arrays
{
    public class Array
    {

        public void Manipulation()
        {
            var numbers = new[] {1, 2, 3};
            System.Array.Clear(numbers, 0, 2);
            Console.WriteLine("Manipulation | Clearing from index 0 to 2: [{0}]", string.Join(",z", numbers));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Sel*_*enç 5

您没有将numbers数组传递给Clear方法,您正在创建一个具有相同元素的新数组,但它是一个完全不同的引用,与之无关numbers.这就是为什么值numbers保持不变:

Array.Clear(numbers, 0, 2);
Run Code Online (Sandbox Code Playgroud)