random.Next(0,5)
它从不返回5(但有时返回0。)为什么?我认为这些只是可以返回的边界值。谢谢
random.Next(0,5)
它从不返回5(但有时返回0。)为什么?我认为这些只是可以返回的边界值。谢谢
Answers:
的maxValue在上界Next()方法是排他性-the范围包括minValue,maxValue-1,以及两者之间的所有数字。
array[random.Next(0, array.Length)]
                    该文件称,上限是排斥的。互斥意味着它不包含在可能的返回集中。在0 <= x < 5这种情况下,采用更数学的表示法。
minValue而不是maxValue?
                    minValue= maxValue。在这里,如果不要紧minValue或maxValue返回,因为他们是平等的。  minValue <= x <  maxValue是不正确的。如果minValue= maxValue= 0,则返回x = 0,并且0 <0不是true。
                    直接来自文档:
 Summary:
   Returns a random number within a specified range.
 Parameters:
   minValue:
     The inclusive lower bound of the random number returned.
   maxValue:
     The exclusive upper bound of the random number returned. maxValue must be
     greater than or equal to minValue.
 Returns:
     A 32-bit signed integer greater than or equal to minValue and less than maxValue;
     that is, the range of return values includes minValue but not maxValue. If
     minValue equals maxValue, minValue is returned.
如果查看参数,您将看到这minValue是包含的(这就是您的0出现的原因)和maxValue唯一的(您的5从未出现)的原因。
当您只是在Google中查找“ c#random”并遵循第一个链接到欲望的方法时,您会获得以下信息:http : //msdn.microsoft.com/zh-cn/library/aa329893(v=vs.71)。 aspx
而且没有关于上限的排他性的暗示。他们必须在代码中找到错误,并通过文档进行了更正。
因此,重要的是在查看文档时始终检查框架的版本。即使使用旧版本的框架,也值得一看新的文档。