Random.Next - 我不明白

1n9*_*7om 2 .net vb.net random

我真的不了解Random.Next(minValue,maxValue).这总是给我"1":

rnd.Next(1,2)
Run Code Online (Sandbox Code Playgroud)

但是,这似乎创建了1或2:

rnd.Next(1,3)
Run Code Online (Sandbox Code Playgroud)

但是,由于第二个参数被称为"maxValue",它是否也应该包含在Random.Next()的可能结果中?

Tom*_*ard 11

如果API说不包含它,则不会.

http://msdn.microsoft.com/en-us/library/2dx6wyd4.aspx

说maxValue是一个独占值,minValue是包含在内的.所以不,它不包括maxValue.

编辑:这导致了一个很好的教学点,即在使用您不熟悉的API时该怎么做.尽管变量名称在编码实践中应该清楚,以便尝试帮助程序员快速说明它应该是什么意思,以及它的用途,但最佳做法是查看该函数的API文档(如果可用)更详细地了解它的作用.我希望这有帮助!

  • 这背后的原因是让你更容易做一些事情,比如`someArray [rand.Next(0,someArray.Length)]`这样做会给你一个整个数组范围的随机元素,永远不会抛出`IndexOutOfBoundsException `无需做任何附加的数学运算来捕捉最大和最小指数.还有其他"便利",但其中一个是最容易展示的. (3认同)