C# ';最大值';必须大于零

C# ';最大值';必须大于零,c#,C#,我不确定这是否是个问题,但消息中似乎有不正确的地方 我的第一次尝试: try { var r = new Random(); Console.WriteLine(r.Next(-1)); } catch (Exception e) { Console.WriteLine(e.GetType().ToString()); Console.WriteLine(e.Message); } 输出: System.ArgumentOutOfRangeException “

我不确定这是否是个问题,但消息中似乎有不正确的地方

我的第一次尝试:

try
{
    var r = new Random();
    Console.WriteLine(r.Next(-1));
}
catch (Exception e)
{
    Console.WriteLine(e.GetType().ToString());
    Console.WriteLine(e.Message);
}
输出:

System.ArgumentOutOfRangeException

“maxValue”必须大于零

参数名称:maxValue

我的第二次尝试:

try
{
    var r = new Random();
    Console.WriteLine(r.Next(0));
}
catch (Exception e)
{
    Console.WriteLine(e.GetType().ToString());
    Console.WriteLine(e.Message);
}
输出:

0

因此,问题是:
0
为什么大于零

/*==================================================================================================================下一步=====================================
**返回:一个int[0..maxValue)
**参数:maxValue——比最大合法返回值多出一个。
**例外情况:无。
==============================================================================*/
公共虚拟整数下一步(整数最大值){
如果(最大值

maxValue:要生成的随机数的独占上限。maxValue必须大于或等于0


参数

maxValue
类型:
System.Int32
要生成的随机数的独占上限。maxValue必须大于或等于0

根据MSDN的定义,源于

最大值类型: System.Int32随机变量的唯一上界 要生成的数字。maxValue必须大于或等于0


因此,是的,我们可以说错误消息具有误导性。它应该大于或等于零。

该值不能为负。零或更高是可以接受的。这就是为什么您的答案高于此值。

0怎么可能为正?0既不是正也不是负!0是0!
maxValue