class class1
{
public Random randomizer;
public string getRadom()
{
return randomizer.Next(1, 4).ToString();
}
}
class1[] cl;
public Form1()
{
InitializeComponent();
cl = new class1[3];
cl[0] = new class1() { randomizer = new Random() };
cl[1] = new class1() { randomizer = new Random() };
cl[2] = new class1() { randomizer = new Random() };
label1.Text = cl[0].getRadom();
label2.Text = cl[1].getRadom();
label3.Text = cl[2].getRadom();
}
得到的随机数都是一样的,都是1,或者都是2,或者都是3,或者都是4
如果改成
class class1
{
public Random randomizer;
public string getRadom()
{
//在这里实例化
randomizer = new Random();
return randomizer.Next(1, 4).ToString();
}
}
class1[] cl;
public Form1()
{
InitializeComponent();
cl = new class1[3];
//此处对像初始化时不初始化class1的randomizer字段
cl[0] = new class1();
cl[1] = new class1();
cl[2] = new class1();
label1.Text = cl[0].getRadom();
label2.Text = cl[1].getRadom();
label3.Text = cl[2].getRadom();
}
这样得到的随机数不一样,求原因,谢谢
http://msdn.microsoft.com/zh-cn/library/system.random.aspx