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

时间:2019-01-12 18:18:27

标签: c# arrays

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

我正在学习C#,目前正在学习数组和Clear()。当尝试查看使用Clear()会发生什么时,我得到以下输出:

enter image description here

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

我的代码如下:

Program.cs

@client.event
async def on_message(message):
    To = client.get_channel('channel_id')
    await client.send_message(To, f"SERVER: {message.server.name} CHANNEL: {message.channel} AUTHOR: {message.author.name} MESSAGE: {message.content}")

Arrays.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();
        }
    }
}

1 个答案:

答案 0 :(得分:5)

您没有将numbers数组传递给Clear方法,而是创建了一个具有相同元素的新数组,但这是一个完全不同的引用,并且与{{1 }}。这就是numbers中的值保持不变的原因:

numbers