[CSharp] probleme avec Random

Résolu
progfann Messages postés 365 Date d'inscription   Statut Membre Dernière intervention   -  
 Supercwis -
Bonjour,

j'ai crée une classe nombreAleatoire qui contient une methode qui retourne un nombre aleatoire entier:
 public int Nb()
        {
            Random RandomNumber = new Random();

            return RandomNumber.Next(1,10);
        }


dans la classe main j'ai crée 3 variable: var1,var2,var3
nombreAleatoire n=new nombreAleatoire ();
int var1=n.Nb();
int var2=n.Nb();
int var3=n.Nb();


Le probleme c'est que ces 3 variables contiennent la meme valeur. Pourquoi??

Merci pour votre aide
Configuration: Windows XP
Firefox 3.5.6

5 réponses

  1. Supercwis
     
    Tu peux tester ça :

    using System.Threading;

    public int Nb()
    {
    Random RandomNumber = new Random();

    return RandomNumber.Next(1, 50);
    }

    private void btn_Click(object sender, EventArgs e)
    {
    lbl01.Text = Nb().ToString();
    Thread.Sleep(1000);
    lbl02.Text = Nb().ToString();
    Thread.Sleep(1000);
    lbl03.Text = Nb().ToString();
    Thread.Sleep(1000);
    lbl04.Text = Nb().ToString();
    Thread.Sleep(1000);
    lbl05.Text = Nb().ToString();
    }
    2
  2. Nico# Messages postés 328 Date d'inscription   Statut Membre Dernière intervention   102
     
    Bonsoir,

    Il semblerai que ce soi normal la fonction Random s'initialiserai touojours avec les meme valeur

    Cependant tres interresant car je n'avais jamais remarque sa

    il faudrait regarder le code de cette classe
    0
    1. progfann Messages postés 365 Date d'inscription   Statut Membre Dernière intervention   23
       
      Oui mais normalement lorsque je fais appel à la fonction Nb(), elle dois se réinitialiser non??
      0
  3. Nico# Messages postés 328 Date d'inscription   Statut Membre Dernière intervention   102
     
    oui mais je vien d'essayer de creer une autre fonction identique

    public Form1()
    {
    InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    int t, r, v;
    t = Num();
    r = Num1();
    v = Num();
    textBox1.Text = r.ToString();
    textBox2.Text = t.ToString();
    textBox3.Text = v.ToString();
    }

    private int Num()
    {
    Random re = new Random();
    return re.Next(1, 10);
    }
    private int Num1()
    {
    Random re = new Random();
    return re.Next(1, 10);
    }

    et les resultat son tjrs pareil
    0
  4. progfann Messages postés 365 Date d'inscription   Statut Membre Dernière intervention   23
     
    oui j'ai deja essayé cela , ça marche pas!!

    j'ai meme fais:

    NombreAleatoire n;
     n= new NombreAleatoire();
                int val1 =n.Nb();
    n = new NombreAleatoire();
                int val2 = n.Nb();


    mais ça marche tjrs pas!!
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. progfann Messages postés 365 Date d'inscription   Statut Membre Dernière intervention   23
     
    Et enfin voila la solution:

    class NombreAleatoire
        {
            Random RandomNumber = new Random(); // faut le mettre en dehors de la methode
    
            public int Nb()
            {
                
    
                return RandomNumber.Next(1,10);
                
            }
    
        }
    0