嘿,我想从一个方法中返回一个随机数。我的代码工作正常,它返回一个随机数,但问题是如果我在同一个while循环中使用它两次,它返回的是相同的数字,我该如何解决这个问题?如果有解决问题的方法。
我的代码如下所示
private int ReturnARandomNumber(int min, int max)
{
var randomNumber = new Random();
return randomNumber.Next(min, max);
}发布于 2017-05-31 04:27:31
您应该移动声明:
var randomNumber = new Random();方法作用域之外的类作用域:
var randomNumber = new Random();
private int ReturnARandomNumber(int min, int max)
{
return randomNumber.Next(min, max);
}发布于 2017-05-31 04:29:18
不要每次都创建一个新的Random对象。Random使用当前时间作为默认种子,如果您经常在紧凑的循环中调用该函数,则在后续调用中它将获得相同的种子值。如果您在一段时间内重用同一对象,则Random的效果最好:
private Random randomNumber = new Random();
private int ReturnARandomNumber(int min, int max)
{
return randomNumber.Next(min, max);
}发布于 2017-05-31 04:27:42
用于生成随机数的种子基于当前时间。在你的例子中,一种方法是让Random成为函数中的一个参数,这样你就可以在你的循环之外初始化它。
https://stackoverflow.com/questions/44271324
复制相似问题