[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
A voir également:

5 réponses

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
Nico# Messages postés 323 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
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
Nico# Messages postés 323 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
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

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

Posez votre question
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