2010-07-06 6 views
0

"인덱스가 배열의 경계를 벗어났습니다."라는 메시지가 나타납니다. 오류이 코드를 사용하는 경우 :인덱스가 배열 범위 밖에 있습니다.

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

나는 (임의) 인덱스가 범위 외에 할 수있는 방법을 볼 실패를?

+0

Ben, "VB.NET"과 같은 태그를 제목에 넣지 마십시오. 태그를 남겨 둡니다. 또한 주변을 둘러보고 다른 사람들이 태그에 사용하는 것을 확인하십시오. 네가 끔찍 했어. –

답변

4

Int(Rnd() * RandomA.Count)은 0을, 0-1은 경계를 벗어날 수 있습니다.

+0

@Ben : 'Rnd'함수의 Microsoft 설명서에 "Rnd 함수가 1보다 작지 만 0보다 큰 값을 반환합니다."라는 메시지가 표시됩니다. –

+0

@ OlivierJacot-Descombes :'Int (Double.Epsilon * RandomA.Count)'시도 –

+0

예상대로 0.0을 반환합니다. 당신의 설명은 괜찮습니다. 나는 단지'Rnd' 기능에 대해 설명하기를 원했습니다. –

0

확실히 가장자리 조건입니다. 방정식은 특정 임의의 숫자 조건에서 -1로 평가됩니다.

+0

설명이 잘못되었습니다. –

관련 문제