嘿我试图从方法中返回一个随机数。我的代码工作,它返回一个随机数,但问题是它返回相同的数字,如果我在同一个while循环中使用它两次,我该如何解决问题?如果问题得到解决。
我的代码看起来像这样
private int ReturnARandomNumber(int min, int max)
{
var randomNumber = new Random();
return randomNumber.Next(min, max);
}
- Morten syhler
答案 0 :(得分:2)
您应该移动声明:
var randomNumber = new Random();
从方法范围到类范围:
var randomNumber = new Random();
private int ReturnARandomNumber(int min, int max)
{
return randomNumber.Next(min, max);
}
答案 1 :(得分:1)
每次都不要创建新的Random对象。 Random
使用当前时间作为默认种子,如果您经常在紧密循环中调用该函数,则在后续调用中获取相同的种子值。如果您在一段时间内重复使用同一个对象,Random
效果最佳:
private Random randomNumber = new Random();
private int ReturnARandomNumber(int min, int max)
{
return randomNumber.Next(min, max);
}
答案 2 :(得分:-1)
用于生成随机数的种子基于当前时间。在你的情况下,一种方法是让Random
成为函数中的参数,这样你就可以在循环之外初始化它。