首页 新闻 会员 周边

c# random 为什么得到的随机数是一样的 ?

0
悬赏园豆:30 [已解决问题] 解决于 2012-09-10 09:45

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();
        }

这样得到的随机数不一样,求原因,谢谢

林中闲人的主页 林中闲人 | 初学一级 | 园豆:2
提问于:2012-09-08 08:21
< >
分享
最佳答案
0
收获园豆:30
artwl | 专家六级 |园豆:16736 | 2012-09-08 09:06
其他回答(1)
0

http://msdn.microsoft.com/zh-cn/library/system.random.aspx

田林九村 | 园豆:2367 (老鸟四级) | 2012-09-08 09:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册