-3

作成中のループには単純な乱数が必要ですが、ここで何が間違っているのか一生わかりません。誰かが以下のコードを見て、次のエラーが発生する理由を説明してもらえますか:

エラー 1 'System.Random.Next(int, int)' に最適なオーバーロードされたメソッド マッチには無効な引数が含まれています

エラー 2 引数 1: 'decimal' から 'int' に
変換できません エラー 3 引数 2: 'decimal' から 'int' に変換できません

Numeric Up/Down コントロールから範囲の最小値と最大値を取得しようとしています。LINQ または C# には単純な 1 行のジェネレーターがあると思いますが、見つかりません。

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

5 に答える 5

2

NumericUpDown.Value は 10 進数を返しますが、Next() は整数を受け入れます。おそらく、最初に整数にキャストする必要があります。

var integer = rnd1.Next((int)numericUpDown_RandomMin.Value, (int)numericUpDown_RandomMax.Value);
于 2013-03-13T14:21:42.197 に答える
1

NumericUpDown.Valueの戻り値の型はであるため、と の値をに明示的に変換するDecimal必要があります。お気に入り;numericUpDown_RandomMin.ValuenumericUpDown_RandomMax.ValueInt32Random.Next(Int32, Int32)Int32

Random rnd1 = new Random();
var integer = rnd1.Next((int)numericUpDown_RandomMin.Value, (int)numericUpDown_RandomMax.Value);
textbox.Text = integer.ToString();
于 2013-03-13T14:28:19.037 に答える