编辑:更改 System.Array.Clear(new[] {1,2,3}, 0, 2);到 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();
}
}
}
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));
}
}
}
最佳答案
您没有将 numbers
数组传递给 Clear
方法,您正在创建一个具有相同元素的新数组,但它是一个完全不同的引用并且没有任何内容与 numbers
相关。这就是 numbers
中的值保持不变的原因:
Array.Clear(numbers, 0, 2);
关于c# - Array.Clear(new [] {1,2,3}, 0, 2) 输出 [1,z2,z3],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54162553/