[CSharp] probleme avec Random

Résolu
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. 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
    1. 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
      1. 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
        1. 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
          1. 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. Oui mais normalement lorsque je fais appel à la fonction Nb(), elle dois se réinitialiser non??
              0