C# での乱数生成に問題があります
私が見つけたすべての解決策を試しました。ほとんどの場合、各プロパティではなく各オブジェクトのみを機能させる、毎回同じランダム オブジェクトのみを使用しています。
だから私はこれを乱数のコードとして使用しています:
private static readonly Random random = new Random();
private static readonly object syncLock = new object();
public static int RandomNumber(int min, int max)
{
lock (syncLock)
{ // synchronize
return random.Next(min, max);
}
}
.Next()
今度は、ランダム オブジェクトを生成するために、同じメソッドで複数回呼び出したいと思います。
public void StartDuiven()
{
for (int i = 0; i <= 6; i++)
{
var d = new Duif();
d.Naam = /*NameGenerator.GenRandomFirstName() +" "+ NameGenerator.GenRandomLastName()*/ "Jantje";
d.GeboorteDatum = DateTime.Now;
d.Snelheid = Genrator.RandomNumber(0, 4);
d.Vliegtechniek = Genrator.RandomNumber(0, 4);
d.Vormpeil = Genrator.RandomNumber(0, 4);
d.Conditie = Genrator.RandomNumber(0, 4);
d.Aerodynamica = Genrator.RandomNumber(0, 4);
d.Intelligentie = Genrator.RandomNumber(0, 4);
d.Libido = Genrator.RandomNumber(0, 4);
d.Nachtvliegen = Genrator.RandomNumber(0, 4);
d.Navigatie = Genrator.RandomNumber(0, 4);
d.Ervaring = Genrator.RandomNumber(0, 4);
d.Transfer = false;
int g = Genrator.RandomNumber(0, 2); // Edited
if (g == 0)
d.Geslacht = false;
else
d.Geslacht = true;
AddDuif(d);
}
}
新しいオブジェクトごとに異なる番号を取得しますが、呼び出すたびにではありません。Next()
方法。
したがって、プロパティのすべての値は、1 つのオブジェクトに対して同じになります。
どうすればこれを修正できますか? .Next()
呼び出しごとに新しい値を取得できないのはなぜですか?
ありがとうございました
さよなら!