for (int i = 0; i < 20; i++)
{
byte wtf = (byte) new Random().Next(10);
Console.Write(wtf + " ");
}
このコードは、プログラムを段階的に実行すると、期待される出力を生成します: 4 6 9 2 9 0....
しかし、[デバッグの開始] または [デバッグなし] を押すと、次のようになります。7 7 7 7 7 7...
どうして?
ループが速すぎるためです。Random
このクラスは、私は信じて、種子のためのシステムクロックを使用し、あなたのループが同じミリ秒の間に実行したとき、それは同じシードを取得します。
あなたが本当にしなければならないことは次のとおりです:ループのRandom
外でインスタンス化します:
var rand = new Random();
for (int i = 0; i < 20; i++)
{
byte wtf = (byte) rand.Next(10);
Console.Write(wtf + " ");
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加