random.Next(0,7)ArgumentOutOfRangeException C#

时间:2017-02-07 04:34:03

标签: c# random

我试图向我的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);
            });

http://imgur.com/a/4kwmT

编辑:(1,7)而不是(0,7)

2 个答案:

答案 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(); 超出功能(我猜测异步设置是导致问题的那个)或者更好,但如果可能的话,在异步外生成随机数。