Luk*_*keH 11
默认种子取自系统时钟.
我猜你的GetRandomRectangle方法是快速连续调用的,并且Random每次都会立即调用一个新的实例.执行此操作时,每个实例Random将从系统时钟中获取相同的种子,这就是您的方法每次创建相同的矩形的原因.
一种解决方案是创建一个实例Random并将其传递给您的方法:
Random rng = new Random();
Rectangle foo = GetRandomRectangle(rng);
Rectangle bar = GetRandomRectangle(rng);
Rectangle baz = GetRandomRectangle(rng);
// ...
public Rectangle GetRandomRectangle(Random rng)
{
// create the rectangle using rng
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3102 次 |
| 最近记录: |