Wie generiere ich eine zufällige int-Zahl?

Wie generiere ich eine zufällige Ganzzahl in C#?

Lösung

Die Klasse Random wird verwendet, um Zufallszahlen zu erzeugen. (Pseudozufallszahlen natürlich.).

Beispiel:

Random rnd = new Random();
int month  = rnd.Next(1, 13);  // creates a number between 1 and 12
int dice   = rnd.Next(1, 7);   // creates a number between 1 and 6
int card   = rnd.Next(52);     // creates a number between 0 and 51

Wenn Sie mehr als eine Zufallszahl erzeugen wollen, sollten Sie die Instanz Random behalten und wiederverwenden. Wenn Sie neue Instanzen zu nah an der Zeit erstellen, werden sie die gleiche Reihe von Zufallszahlen produzieren, da der Zufallsgenerator von der Systemuhr gefüttert wird.

Kommentare (7)

Beachten Sie, dass new Random() auf den aktuellen Zeitstempel gesetzt wird.

Wenn Sie nur eine Zahl generieren wollen, können Sie verwenden:

new Random().Next( int.MinValue, int.MaxValue )

Weitere Informationen finden Sie in der Klasse Random, aber beachten Sie bitte:

Da die Uhr jedoch eine endliche Auflösung hat, führt die Verwendung des parameterlosen Konstruktors zur Erstellung verschiedener Random-Objekte in kurzer Folge zu Zufallszahlengeneratoren, die identische Sequenzen von Zufallszahlen erzeugen

Verwenden Sie diesen Code also nicht, um eine Reihe von Zufallszahlen zu erzeugen.

Kommentare (3)
Random r = new Random();
int n = r.Next();
Kommentare (0)