每次调用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.