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

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...