每次调用RandomNumber方法都返回相同的数字 [英] RandomNumber method returns same number every time called

查看:105
本文介绍了每次调用RandomNumber方法都返回相同的数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

每次尝试从for循环中调用RandomNumber方法时,我都试图生成一个不同的随机数.现在,它每次都返回相同的数字.

I am trying to generate a different random number every time my RandomNumber method is called from within my for loop. Right now, it returns the same number every time.

这是我的RandomNumber方法:

This is my RandomNumber method:

    private int RandomNumber(int min, int max)
    {
        Random random = new Random();
        return random.Next(min, max);
    }

这是我在其中使用它的上下文:(这有点混乱,因为我一直在试图使其正常工作…….)

This is the context I am using it in: (it's a little messy just because I have been messing with trying to get it to work....)

        for (int i = 0; i < charsRaw.Length; i++)
        {
            int max = charsRaw.Length - 1;
            int rand = 0;
            rand = RandomNumber(0, max);

            charsNew[i] = charsRaw[rand];
            text2 += charsNew[i];

         }

每次使用for循环调用它时,我似乎都无法使它返回不同的值.

I can't seem to get it to return a different value every time it is called with the for loop.

尽管如此,当我在text2 + = charsNew [i]之后粘贴MessageBox.Show(rand.ToString())时,每次都会给我一个不同的值,并按照我的预期方式工作.奇怪.

Although, when i stick a MessageBox.Show(rand.ToString()) after text2 += charsNew[i], it gives me a different value every time and works the way I intended it to. Strange.

谢谢! 埃里克

推荐答案

实例化一次Random.在同一实例上多次调用.Next().

Instantiate Random once. Call .Next() multiple times on the same instance.

MSDN :

随机数生成开始 从种子值开始.如果是相同的种子 重复使用,相同系列 数字已生成

The random number generation starts from a seed value. If the same seed is used repeatedly, the same series of numbers is generated

如果您希望重复实例化Random,则每次使用不同的种子.

If you do wish to repeatedly instantiate Random, use a different seed each time.

这篇关于每次调用RandomNumber方法都返回相同的数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆