如果你不确定内部工作原理,可以查看维基百科进行了解,但这很简单。
public class MathCalculations
{
private Random rnd = new Random();
public Int32 getRandom(Int32 iMin, Int32 iMax)
{
return rnd.Next(iMin, iMax);
}
}
public class Main
{
MathCalculations mathCalculations = new MathCalculations();
for (int i = 0; i < 6; i++)
{
getRandom(0,1000);
}
}
将生成Number1、Number2、Number3、Number4、Number5和Number6(1个种子,1个包含许多数字序列的序列,随机*不是真正的随机,但是近似*)
但如果你这样做:
public class MathCalculations
{
public Int32 getRandom(Int32 iMin, Int32 iMax)
{
Random rnd = new Random();
return rnd.Next(iMin, iMax);
}
}
public class Main
{
MathCalculations mathCalculations = new MathCalculations();
for (int i = 0; i < 6; i++)
{
getRandom(0,1000);
}
}
您现在会得到Number1,Number1,Number1,Number1,Number1,Number1(1个种子,6个相等的数字序列,每个相等的序列始终选择相同的起始数字)。 在某些时候,Number1将不同,因为种子随时间而变化。 但是您需要等一段时间才能完成这项工作,尽管如此,您永远不会从序列中选择number2。
原因是每次使用相同的种子生成新序列,因此序列一遍又一遍地重复,每次随机生成器都会选择其序列中的第一个数字,而在相同的种子下,它当然始终相同。 不确定这是否符合随机生成器的基本方法,但它的行为就是这样。