我在 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()
调用我都没有得到一个新值?
谢谢
再见!