如果我有这个:(我已经声明了变量)
random1 = new Random();
Console.WriteLine(random1.Next(1, 100));
Console.WriteLine(random1.Next(1, 100));
当我拥有它时,每次我调用console.writeline时它都会生成一个不同的数字,所以这会生成ex。10, 55 如果你再做一次 20,60 所以基本上每次都是随机数,很好。但是当我添加这个时:
random2 = new Random();
Console.WriteLine(random1.Next(1, 100));
Console.WriteLine(random1.Next(1, 100));
Console.WriteLine(random2.Next(1, 100));
Console.WriteLine(random2.Next(1, 100));
Random1 将生成与随机相同的数字!所以它会是前。5,54,5,54,如果我再做一次 70,34,70,34。但它的 random2 是一个新对象,为什么它会生成与 random1 相同的数字?
另一个例子:如果我有这样的课
class RandomNumber
{
Random random = new Random();
public int getrandomnumber { get { return random.Next(1, 5); } }
}
这样做之后
randomnumberobject = new RandomNumber();
randomnumberobject2 = new RandomNumber();
Console.WriteLine(randomnumberobject.getrandomnumber);
Console.WriteLine(randomnumberobject2.getrandomnumber);
它们会生成一个随机数,但它们都会生成完全相同的随机数。所以第一次我会得到这个 5,5 第二次这个 3,3 等等。但是如果我把课程改成这个
class RandomNumber
{
Random random;
public int getrandomnumber { get { return random.Next(1, 5); } }
public RandomNumber(Random random) { this.random = random; }
}
而是这样做
random = new Random();
randomnumberobject = new RandomNumber(random);
randomnumberobject2 = new RandomNumber(random);
Console.WriteLine(randomnumberobject.getrandomnumber);
Console.WriteLine(randomnumberobject2.getrandomnumber);
突然,它们都生成了不同的随机数!那么为什么会这样呢?什么原因?请记住,我仍然是一个初学者。