Share via


Astuce Silverlight : Créer un générateur de nombre aléatoire efficace - #S021

image

Dans certains de mes anciens articles j’ai créé un générateur de nombres aléatoires distinct pour chaque objet. Toutefois, la documentation sur les nombres aléatoires stipule :

« La valeur initiale par défaut est dérivée de l'horloge système et a la résolution finie. En conséquence, les objets Random différents qui sont créés successivement par un appel au constructeur par défaut ont des valeurs initiales par défaut identiques et produisent ainsi des jeux identiques de nombres aléatoires. Ce problème peut être évité en utilisant un seul objet Random pour générer tous les nombres aléatoires. »

En conséquence j'ai créé une classe unique de générateur de nombres aléatoires et je l’ai placée dans une nouvelle classe statique appelée Utils où elle pourrait être globalement référencée.

 public class Utils
{
    static Random _random;
 
    static Utils()
    {
        _random = new Random();
    }
 
    public static int RndGen(int min, int max)
    {
        return _random.Next(min, max);
    }
}

Pour effectuer un appel depuis l’une de vos classes, telle que votre classe Page, faites simplement un appel comme suit pour obtenir un nombre aléatoire :

 int value = Utils.RndGen(1, 50);  

Le premier paramètre est la valeur minimale que vous voulez et la seconde, la valeur maximale.

Syndication : Mike Snow’s Weblog
Traduction autorisée par Mike Snow.