微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – RandomNumber方法每次调用都返回相同的数字

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

这是我的RandomNumber方法

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

这是我使用它的上下文:(它有点乱,因为我一直在试图让它工作……)

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循环调用时,我似乎都无法返回不同的值.

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

谢谢!
埃里克

解决方法

实例化一次随机.在同一个实例上多次调用.Next().

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,请每次使用不同的种子.

原文地址:https://www.jb51.cc/csharp/98795.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐