索引超出了数组的范围

问题描述:

我得到“索引超出了数组的范围”。使用此代码时出现错误:索引超出了数组的范围

Dim RandomA As String = "aAÀàÁâÄäÅåĀāĂ㥹ǞǟǺǻÃãÄ" 
TextBox1.Text = TextBox1.Text.Replace("a", RandomA((Int(Rnd() * RandomA.Count)) - 1)) 

我无法看到(随机)索引如何超出范围?

+0

本,请不要在标题中加入“(VB.NET)”标签。只留下标签。另外,还可以看看别人正在使用的标签。你的太可怕了。 – 2010-07-06 00:31:52

Int(Rnd() * RandomA.Count)可能返回0,并且0-1超出边界。

+0

@Ben:Rnd函数的微软文档说“Rnd函数返回的值小于1,但大于或等于零。” – 2012-11-17 22:28:09

+0

@ OlivierJacot-Descombes:尝试'Int(Double.Epsilon * RandomA.Count)' – 2012-11-17 22:31:16

+0

它按预期返回0.0。你的解释是可以的。我只是想解释'Rnd'函数。 – 2012-11-17 22:39:17

这是一个肯定的边缘条件。 在特定的随机数条件下,方程评估为-1。

+0

不好解释。 – 2012-11-17 22:29:27