gpt4 book ai didi

c# - 每个 .Next() 调用的随机数 [方法中的多个 .Next()]

转载 作者:太空狗 更新时间:2023-10-30 00:54:57 26 4
gpt4 key购买 nike

我在 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() 调用时获得新值?

谢谢

再见!

最佳答案

Random.Next(0, 1) 将始终返回 0。最大值是唯一的。

关于c# - 每个 .Next() 调用的随机数 [方法中的多个 .Next()],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11019628/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com