我在C#中產生隨機數的問題隨機數每.Next()調用[Multiple .Next()in method]
我嘗試了所有我找到的解決方案。大多數我們只使用相同的隨機對象,每次只處理每個對象,而不是每個屬性。
所以我用這個作爲隨機數字的代碼:
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()
電話上獲得新的價值?
謝謝
再見!
好吧,我讓那0,2即可。對每個.Next()調用返回的問題有任何想法? –
+1回答... @JonasBohez - 隨機數字是隨機的,你爲什麼期望它們不同?您對「下一個數字不得重複先前」的限制使得非常特殊的分配,而不是由常規的隨機對象提供。 –
Nvm在最後一個問題,這是我自己的錯在別的地方:/感謝編輯0,2,但 –