编辑:更改了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)
您没有将numbers数组传递给Clear方法,您正在创建一个具有相同元素的新数组,但它是一个完全不同的引用,与之无关numbers.这就是为什么值numbers保持不变:
Array.Clear(numbers, 0, 2);
Run Code Online (Sandbox Code Playgroud)