J'ai une classe qui représente une pièce, qui peut être retournée avec la méthode Coin.Flip(). Flip() utilise random.Next (2); pour obtenir un 0 ou un 1 représentant des têtes ou des queues. Cela fonctionne bien .. en quelque sorte.Problème avec C# Classe aléatoire
Pour le programme, j'ai besoin de 2 pièces, que je fais, disons coin1 et coin2.
coin2 doit toujours être retourné directement après coin1, que je peux faire avec:
coin1.Flip();
coin2.Flip();
Cela devrait fonctionner, non?
Eh bien, ce n'est pas le cas! Chaque fois que je lance ces deux lignes de code, les deux pièces finissent avec les mêmes valeurs les unes que les autres!
La valeur nominale est stockée face à l'intérieur de la classe Coin, qui est défini comme suit:
private int face;
Je ne vois rien de mal à ce que je l'ai fait, mais chaque fois que je lance le code, ils se retrouvent identiques.
Oh, est aléatoire également définie dans la classe Coin et comme ceci:
private Random random = new Random();
Merci pour votre aide!
EDIT: Voici Flip(), cela fonctionne maintenant que le statique est statique.
public void Flip() {
face = random.Next(2);
}
Pouvez-vous montrer l'implémentation de Flip? –
Note: si vous le faites statique, vous devez également le synchroniser ou le rendre spécifique au thread, car il n'est pas listé comme thread-safe –