为什么我的数组不加数字

本文关键字:数字 数组 我的 为什么 | 更新日期: 2023-09-27 18:35:36

这是我的代码:

namespace Exercise6
{
    class Program
    {
        static void Main(string[] args)
        {
            OtherClass aTable = new OtherClass(); //instantiate class
            Console.WriteLine("How many rows do you want your two-dimensional array to be?");
            aTable.SRows = Console.ReadLine(); //reads input for how many rows that the user would like
            aTable.IntRows = int.Parse(aTable.SRows); //convert rows to int
            Console.WriteLine("Thanks you! How many columns would you like your two-dimensional arry to be?");
            aTable.SColumns = Console.ReadLine(); //reads input for how many columns that the user would like
            aTable.IntColumns = int.Parse(aTable.SColumns); //convert columns to int
            //set two dimensional array based upon the size that the user has requested
            int[ , ] array = new int[aTable.IntColumns, aTable.IntRows];
            Random randomArray = new Random(); //call to random class to ask for random numbers
            for (int i = 0; i < aTable.IntColumns; i++) //columns
            {
                array[i, 0] = randomArray.Next(0, 100); //for every value in each column, insert a random number
            }
            for (int y = 0; y < aTable.IntRows; y++) //rows
            {
                array[y, 0] = randomArray.Next(0, 100);
            }
            Console.WriteLine(array);

        }
    }
}
namespace Exercise6
{
    class OtherClass
    {
        private string sRows;
        public string SRows { get; set; }
        private int intRows;
        public int IntRows { get; set; }
        private string sColumns;
        public string SColumns { get; set; }
        private int intColumns;
        public int IntColumns { get; set; }
    }
}

但是,我不知道为什么我的输出(应该只是我的数组)会说:

系统.Int32[,]

它没有将 for 循环中的随机数添加到我的数组中吗?

提前感谢您的所有帮助!

为什么我的数组不加数字

当你调用Console.WriteLine(array)时,它会调用arrayToString方法。由于数组没有提供更好的实现,因此调用默认ToString,它只返回其类型:System.Int32[,] 。您需要指定自己如何将该数组转换为string,例如

for (int i = 0; i < aTable.IntColumns; i++)
{
    for (int j = 0; j < aTable.IntRows; j++)
    {
        if (j != 0)
            Console.Write(", ");
        Console.Write(array[i, j]);
    }
    Console.WriteLine();
}

写如下内容:

0, 1, 2
3, 4, 5
我相信

你的实际问题是:为什么大多数类型的ToString只返回类型名称,而不是返回值String.ToString

大多数类不会覆盖ToString方法,因此获得默认行为,这只是输出类型名称。

在您的特定情况下,您可能希望遍历所有元素并打印它们。

Console.WriteLine(array); 正在调用数组。ToString(). 默认情况下,这是打印对象类型。

返回表示当前对象的字符串。(继承自 对象。

请参阅阵列 MSDN

您需要手动给出数组的每个条目。这可以通过循环完成,有关示例,请参阅链接的文章。

这是因为您正在编写Array对象。 您需要将数组中的每个元素写出来,或者覆盖数组中的ToString()