百科知识

向高手请教一个c#运行很奇怪的问题

2008-11-16 12:04:00r***
向高手请教一个c#运行很奇怪的问题:把 Random r = new Random(); 放到for循环上面就不会是5个都一样了。原因是执行5次FOR循环里.?

最佳回答

  • 把 Random r = new Random(); 放到for循环上面就不会是5个都一样了。原因是执行5次FOR循环里.NET系统都给new Random用了相同的时间戳做为随机种子,相同随机种子得到的随机数系列当然都是一样的了,设置断点后做为随机种子的时间就不一样,所以得到的随机数系列就会不一样了。建议把new Random()放到类的构造函数里只生成一次更好。另外,getfivecard这个函数写得有点冗余了吧,assgined == false这句有没有不都一样吗!
    2008-11-17 11:43:00
  • 在getfivecard() 这个方法里面加上 System.Threading.Thread.Sleep(200);这行代码。当然,那个200可以改成别的数字。因为随机数并不是真的随机,如果你停留一段时间才会达到类似随机的效果。
    2008-11-16 18:04:00
  • 很赞哦! (92)