我的程序有点问题。
我在我的程序中创建了一个这样的类:
class ClassA
{
public int number = -1;
public Random rnd = new Random();
public void randomize()
{
var random = rnd;
number = rnd.next(4)+2;
}
}
我要创建一个数组,其中每个数组都包含一个类,我是这样创建的。我将数组转移到一个新方法,以便检查它。
public static void Main()
{
ClassA[,] arrayOfClass = new Class[6,6];
ClassA classA= new Class();
int i, j;
for (i = 0; i < 6; i++)
{
for (j = 0; j < 6; j++)
{
classA.randomize();
arrayOfClass[i, j] = classA;
}
}
CheckClassA(arrayOfClass);
}
private void CheckClassA(ClassA[,] arrayOfClass)
{
int i,j;
for(i=0;i<6;i++)
{
for (j = 0; j < 6; j++)
{
Console.Writeline("Randoming : "+arrayOfClass[i,j].number);
{
}
}
当我运行这些时,控制台只会一遍又一遍地产生相同的数字,但每次运行都不同,就像它只随机化一次然后再也不会随机化它。
我的问题是: 1. 为什么我的程序只随机化一次并在数组的所有值上返回相同的数字?2. 是不是我的数组传输方法不对?
我尝试使用下面的其他类型来检查我的随机化是否失败,但不是因为它返回了我预期的随机数。
public static void Main()
{
ClassA[,] arrayOfClass = new Class[6,6];
ClassA class= new Class();
int i, j;
for (i = 0; i < 6; i++)
{
for (j = 0; j < 6; j++)
{
class.randomize();
arrayOfClass[i, j] = class;
Console.Writeline("Randoming : " + arrayOfClass[i,j].number);
}
}
}
任何建议和帮助都会受到重视。谢谢