相关疑难解决方法(0)

随机数生成器仅生成一个随机数

我有以下功能:

//Function to get random number
public static int RandomNumber(int min, int max)
{
    Random random = new Random();
    return random.Next(min, max);
}
Run Code Online (Sandbox Code Playgroud)

我怎么称呼它:

byte[] mac = new byte[6];
for (int x = 0; x < 6; ++x)
    mac[x] = (byte)(Misc.RandomNumber((int)0xFFFF, (int)0xFFFFFF) % 256);
Run Code Online (Sandbox Code Playgroud)

如果我在运行时使用调试器执行该循环,则会得到不同的值(这就是我想要的).但是,如果我在该代码下面放置一个断点两行,则"mac"数组的所有成员都具有相同的值.

为什么会这样?

c# random

741
推荐指数
8
解决办法
17万
查看次数

Random.Next始终返回相同的值

这真的很奇怪,我不明白为什么会这样.在foreach循环中,我正在迭代A类集合,并且对于每个类,我调用Count()方法,其中r1r2数字是从范围[-1,1]生成的.问题是 Random.Next为每个实例返回相同的"随机"数字.当第一个实例的结果为0和-1时,将从以下实例返回相同的结果.拜托,你能告诉我为什么会这样吗?另外,我在每个A类实例中都得不到不同的结果.这是代码:

class a
{
 Random rnd = new Random();
 private void Count()
 {
  int r1 = rnd.Next(-1, 1);
  int r2 = rnd.Next(-1, 1);
 }
}
class b
{
 List<a> listofA=new list<a>();
 foreach (a ACLASS in listofA)
 {
  ACLASS.Count();
 }
}
Run Code Online (Sandbox Code Playgroud)

c# random math

60
推荐指数
4
解决办法
6万
查看次数

标签 统计

c# ×2

random ×2

math ×1