如图,编写了一个获取随机数的函数,为了省事使用了yield return
测试调用:
结果:
如果把代码写成
tbData.Text = String.Join(",",data) + "\n\n" + String.Join(",",data);
得到的数据又是一样的,测了几下后猜测是与时间有关,因为随机数种子是根据时间变化的。
但为什么会出现这种情况?变量自动随时间变化??
如图,编写了一个获取随机数的函数,为了省事使用了yield return
测试调用:
结果:
如果把代码写成
tbData.Text = String.Join(",",data) + "\n\n" + String.Join(",",data);
得到的数据又是一样的,测了几下后猜测是与时间有关,因为随机数种子是根据时间变化的。
但为什么会出现这种情况?变量自动随时间变化??
因为你用 DateTime.Now.Millisecond 做随机种子, 这个是毫秒级的, 如果两次调用在1毫秒一下, 你两次用的随机种子就是一样的,跑出的结果也一样, 如果两次调用超过1毫秒,则种子不同了, 随机序列也不同了。