【发布时间】:2022-01-04 02:34:38
【问题描述】:
你好,我想生成随机数,所以我在我的类中创建了方法
private readonly Random _rand = new Random(); //Private property of class
public void GenerateRandomNumber()
{
//For loop executes 10 times
for (int i = 1; i < 11; i++)
{
Console.WriteLine(_rand.Next(0, 10));
}
}
当我从 Main 调用它时,我会创建我的类的新实例,然后调用它。它工作正常,但我想知道为什么每次在 for 循环中以及每次运行程序时都会生成不同的数字?
这对我来说很有趣,因为我知道 Random 可以生成相同的数字,但在我的情况下它会生成不同的数字。
如果我将static 修饰符添加到私有财产,会有什么影响?
【问题讨论】:
-
看一下文档告诉你,你可以用一个数字为新的 Random 播种,以创建一个可重复的数字序列。
-
即使是肤浅的搜索也会发现这个非常古老、非常活跃的帖子:Random number generator only generating one random number。
-
@ŇɏssaPøngjǣrdenlarp 不太想知道为什么 Random 在我的情况下会产生不同的值。现在我知道为什么了,那是因为我没有将
seed参数传递给构造函数。
标签: c# random console console-application