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

前端之家收集整理的这篇文章主要介绍了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.f2er.com/csharp/98795.html

猜你在找的C#相关文章