0

Int(Rnd() * 75) + 75)C# に変換するVB コードに問題があります。私が試してみました

Random random = new Random
random.Next( 75 ) + 75

しかし、それは正しくありません。私を助けてください。

ありがとう

4

5 に答える 5

8

それが75(包括的)から150(排他的)の間の値を与えることを意図していると仮定すると、私は使用します

Random random = new Random();
int value = random.Next(75, 150);

これは、最初に [0, 75) の範囲の数値を生成し、次に 75 を追加するよりも明確です。IMO.

ただし、乱数が必要になるたびにの新しいインスタンスを作成するべきではないことに注意してください。Randomおそらく、スレッドごとに 1 つのインスタンスが必要です。乱数を生成する際のさまざまな落とし穴といくつかの回避策を説明するかなり長い記事があります。

于 2012-05-10T07:12:19.280 に答える
3

VB のコードが実行されていることを確認します

  1. 乱数を生成します。
  2. 75 を掛けて int に変換します。
  3. 次に、75 を追加します。

C#ではそのような

Random random = new Random();
int v = random.Next() * 75 + 75;

random.Next()整数を与えるため、変換は必要ありません。さらに、次のように見つけるための最小値と最大値のb / wを提供することにより、乱数の生成を制限できます。

random.Next(50, 100);

ここでは、乱数 b/w 50 と 100 のみが検索されます。

于 2012-05-10T07:10:14.883 に答える
1

こんな感じだと思います

        Random random = new Random();
        int rdnum = (random.Next() + 1) * 75;

編集

最後に、彼のランダムが必要な場合は、これを使用します (小さい数字の場合は 0-20)

        int rdnum = ((new Random()).Next(0, 20) + 1) * 75;

EDIT2

Deannaのコメントの後、コードは

        Random random = new Random();
        Double rdnum = (random.NextDouble() * 75) + 75;
于 2012-05-10T07:17:21.077 に答える