gpt4 book ai didi

c# - 代码仅在使用调试器单步执行时才能正确运行?

转载 作者:太空狗 更新时间:2023-10-29 22:14:16 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Random number generator only generating one random number

几分钟前,我对此感到有些困惑。我有以下代码:

public blockType generateRandomBlock()
{
Random random = new Random();
int makeBlockOfType = random.Next(0, 100);

blockType t = blockType.normal;
if (makeBlockOfType <= 80 && makeBlockOfType >= 60)
{
t = blockType.blue;
}
else if (makeBlockOfType > 80 && makeBlockOfType <= 95)
{
t = blockType.orange;
}
else if (makeBlockOfType > 95 && makeBlockOfType <= 100)
{
t = blockType.green;
}

return t;
}

相当简单,它根据随机生成的数字(基于系统时间)返回一个enum 值。不幸的是,出于某种奇怪的原因,我的所有方 block 要么是一种颜色,要么是另一种颜色,尽管这对每一个被放入游戏的方 block 都会运行。但是,当我使用调试器逐步执行此操作并在运行一段时间后查看结果时,我看到 block 现在根据提供的机会呈现多种颜色。我有点困惑为什么会这样。

为此,我使用 MonoGame,它使用 Mono 编译器而不是 Microsoft 编译器。这可能是问题所在吗?我试图将这段代码从调用它的地方内联到构造函数中,但我得到了相同的结果(我猜编译器无论如何都会内联代码)。

我尝试单独重启 Visual Studio,而不是让运行程序进行构建;没有变化。

非常感谢任何建议和帮助!

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