这是我的代码:
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; }
}
}
但是,我无法弄清楚为什么我的输出(应该只是我的数组)会说:
System.Int32 [,]
它没有将for循环中的随机数添加到我的数组中吗?
提前感谢您的所有帮助!
答案 0 :(得分:4)
当您致电Console.WriteLine(array)
时,会调用array
的{{1}}方法。由于数组不提供任何更好的实现,因此调用default ToString
,它只返回其类型: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();
}
答案 1 :(得分:2)
我相信您的实际问题是:为什么大多数类型的ToString
只返回类型名称,而不像返回值的String.ToString
。
大多数类都不会覆盖ToString
方法,因此得到的默认行为只是输出类型名称。
在您的特定情况下,您可能希望迭代所有元素并打印它们。
答案 2 :(得分:1)
Console.WriteLine(数组);正在调用array.ToString()。 默认情况下,这是打印对象类型。
返回表示当前对象的字符串。 (继承自 对象。)
请参阅Array MSDN
您需要手动输出数组的每个条目。这可以通过循环完成,请参阅链接文章以获取示例。
答案 3 :(得分:0)
这是因为你正在编写Array
对象。您需要在数组中写出每个单独的元素,或覆盖数组中的ToString()
。