我是新手,我正在从Main的构造函数中尝试Console.Write()数组。我也试图将ToString()重写为Console.Write()一个整数数组作为字符串,但还没有找到如何做的线索。
namespace Z1
{
class List
{
public List(int b)
{
int[] tabb = new int[b];
Random r1 = new Random();
for(int i=0;i<b;i++)
{
tabb [i] =r1.Next(0, 100);
}
}
public List()
{
Random r2 = new Random();
int rInt1=r2.Next(0,10);
int[] tabc = new int[rInt1];
Random r3 = new Random();
for(int i=0;i<rInt1;i++){
tabc [i] = r3.Next(0,100);
}
}
}
class Program
{
static void Main()
{
List l1 = new List(10);
List l2 = new List();
Console.WriteLine(l1.ToString());
Console.WriteLine(l2.ToString());
}
}
}
答案 0 :(得分:1)
要改变的第一件事是两个阵列。它们是局部变量,当您从构造函数中退出时,它们将被丢弃,您不能再使用它们了。我想你只想要一个可以用你的用户指定的大小或随机大小在1到10之间创建的数组。
最后,您可以按常规方式覆盖ToString()并返回数组的连接
class List
{
static Random r1 = new Random();
private int[] tabb;
public List(int b)
{
tabb = new int[b];
for (int i = 0; i < b; i++)
tabb[i] = r1.Next(0, 100);
}
// This constructor calls the first one with a random number between 1 and 10
public List(): this(r1.Next(1,11))
{ }
public override string ToString()
{
return string.Join(",", tabb);
}
}
现在您的Main方法可以获得预期的结果。
作为旁注,我认为这只是一个测试程序所以没有太多关注,但在一个真正的程序中,我强烈建议你避免创建一个名称与框架中定义的类冲突的类。最好避免使用List,Task,Queue等名称......
答案 1 :(得分:0)
您无法打印数组,您必须单独打印每个值。尝试使用此而不仅仅是Console.WriteLine();
。另外,请确保在课程顶部有using LINQ;
l1.ToList().ForEach(Console.WriteLine);
l2.ToList().ForEach(Console.WriteLine);