[CSharp] probleme avec Random

Résolu/Fermé
progfann Messages postés 365 Date d'inscription dimanche 11 mars 2007 Statut Membre Dernière intervention 23 septembre 2010 - 23 déc. 2009 à 20:13
 Supercwis - 5 avril 2012 à 16:24
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

5 réponses

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
Nico# Messages postés 323 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 août 2013 102
23 déc. 2009 à 20:31
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
progfann Messages postés 365 Date d'inscription dimanche 11 mars 2007 Statut Membre Dernière intervention 23 septembre 2010 23
23 déc. 2009 à 20:35
Oui mais normalement lorsque je fais appel à la fonction Nb(), elle dois se réinitialiser non??
0
Nico# Messages postés 323 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 août 2013 102
23 déc. 2009 à 20:38
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
progfann Messages postés 365 Date d'inscription dimanche 11 mars 2007 Statut Membre Dernière intervention 23 septembre 2010 23
23 déc. 2009 à 21:26
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
progfann Messages postés 365 Date d'inscription dimanche 11 mars 2007 Statut Membre Dernière intervention 23 septembre 2010 23
23 déc. 2009 à 21:38
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