我试图向我的discord bot添加一个骰子命令 如果我没有指定范围,它可以很好地工作 - > rand.Next() 但是,当我添加一个范围(1,7)时,它会一直显示" Exception:ArgumentOutOfRangeException"
commands.CreateCommand("dice")
.Do(async (e) =>
{
Random rand = new Random();
int num = rand.Next(1,7);
string s = Convert.ToString(num);
await e.Channel.SendMessage(s);
});
编辑:(1,7)而不是(0,7)
答案 0 :(得分:0)
你确定rand.Next(1,7)会抛出异常吗?它会检查 minValue> maxValue
if (minValue>maxValue) {
throw new ArgumentOutOfRangeException("minValue",Environment.GetResourceString("Argument_MinMaxValue", "minValue", "maxValue"));
}
https://msdn.microsoft.com/en-us/library/2dx6wyd4(v=vs.110).aspx
您可以尝试删除bin / obj文件夹并重建整个解决方案
答案 1 :(得分:0)
我没有看到你的论点或语法有任何问题。我检查它好像五次大声笑。
如何尝试将随机rand = new Random(); 超出功能(我猜测异步设置是导致问题的那个)或者更好,但如果可能的话,在异步外生成随机数。