2013-03-13 4 views
-3

나는 만들고있는 루프에 간단한 임의의 숫자가 필요합니다. 여기서 내가 잘못하고있는 것이 무엇인지 알아낼 수는 없습니다. 누군가가 아래의 코드를보고는 나에게 다음과 같은 오류주고 왜 나에게 설명 할 수 : 'System.Random.Next (INT, INT)'.NET에서 간단한 임의의 숫자 만들기

오류 1에 가장 적합한 오버로드 된 메서드에 일치하는 일부 잘못된 인수가

오류 2 인수 1 : 'INT'
오류 3 인자 2 '진수'에서 을 변환 할 수 없습니다는 'INT'

나는 최소 끌어하려고에 '진수'에서 변환 할 수 없습니다 최대 값 Numeric Up/Down 컨트롤에서 범위를 선택합니다. 나는 LINQ 나 C#이 간단한 하나의 라인 제너레이터를 가질 것이라고 생각하지만, 그것을 찾을 수는 없다.

이보다
var integer = rnd1.Next((int)numericUpDown_RandomMin.Value, (int)numericUpDown_RandomMax.Value); 

기타, 당신이 어떤 오류를 얻고있다 : 모든 numericUpDown_RandomMin.Value..._RandomMax.Value의 첫

Random rnd1 = new Random(); 
var integer = rnd1.Next(numericUpDown_RandomMin.Value, 
                numericUpDown_RandomMax.Value); 
textbox.Text = integer.ToString(); 
+8

어떤 구문 오류가 있습니까? –

+1

'numericUpDown_RandomMin.Value'와'numericUpDown_RandomMax.Value'는 모두'int' 또는'Int32' 타입입니까? – Nolonar

+0

'numericUpDown_RandomMin.Value'와'numericUpDown_RandomMax.Value'가'int32'가 아니라면 여기에 어떤 문제도 보이지 않습니다. –

답변

2

NumericUpDown.Value가 소수를 반환, 다음() 정수를 허용하면서. 당신은 아마 최초의 정수로 캐스팅 할 : NumericUpDown.Value의 반환 형식이 Decimal입니다

var integer = rnd1.Next((int)numericUpDown_RandomMin.Value, (int)numericUpDown_RandomMax.Value); 
+0

고맙습니다. – Jeagr

2

글쎄, 당신은 캐스팅해야 할 수도 있습니다, 그래서하지 int입니까?

+0

감사합니다, 나는 그것이 단순한 무엇인가 알고 있었다! – Jeagr

+0

오류 메시지를 미리 알려 주셨습니다 ...-) –

2

NumericUpDown은 10 진수이며, int로 변환해야합니다.

var integer = rnd1.Next((int)numericUpDown_RandomMin.Value, (int)numericUpDown_RandomMax.Value); 
2

Random.NextInt32 값을 기대하지만 NumericUpDown.Value 속성은 decimal이다. decimal에서 int로 변환이 일부 값의 정밀도를 푼다 때문에 당신은 명시 적으로 할 필요가 :

rnd1.Next((int)numericUpDown_RandomMin.Value, (int)numericUpDown_RandomMax.Value); 
1

때문에, 당신은 Random.Next(Int32, Int32)Int32 같은 두 개의 매개 변수를 사용하기 때문에 명시 적으로Int32numericUpDown_RandomMin.ValuenumericUpDown_RandomMax.Value 값을 변환 해야합니다. 처럼;

Random rnd1 = new Random(); 
var integer = rnd1.Next((int)numericUpDown_RandomMin.Value, (int)numericUpDown_RandomMax.Value); 
textbox.Text = integer.ToString();