Est-ce que je cherche trop loin pour voir quelque chose d'aussi simple que de choisir un nombre: 0 ou 1?
Random Rand = new Random();
if (Rand.NextDouble() == 0)
{
lnkEvents.CssClass = "selected";
}
else
{
lnkNews.CssClass = "selected";
}
Random Rand = new Random();
if (Rand.Next(0, 2) == 0)
lnkEvents.CssClass = "selected";
else
lnkNews.CssClass = "selected";
Random.Next choisit un entier aléatoire entre la limite inférieure (incluse) et la limite supérieure (exclusive).
Si vous voulez une probabilité de 50/50, je suggère:
Random Rand = new Random();
if (Rand.NextDouble() >= 0.5)
lnkEvents.CssClass = "selected";
else
lnkNews.CssClass = "selected";
Il semble que ce que vous voulez faire (choisir entre deux valeurs) s’exprime plus clairement en utilisant la méthode Next
, au lieu de la méthode NextDouble
.
const int ExclusiveUpperBound = 2;
if (new Random().Next(ExclusiveUpperBound) == 0)
La valeur produite est "supérieure ou égale à zéro et inférieure à" ExclusiveUpperBound
.
Random.NextDouble()
sélectionnera tout nombre double compris entre 0 et moins de 1.0. Comme la plupart de ces nombres ne sont pas nuls, votre distribution ne sera pas aussi régulière que vous le souhaiteriez.
Une approche très simple pourrait être:
Random random = new Random();
bool result = random.Next(0, 2) != 0;
Ensuite, utilisez le résultat pour votre logique.
Sinon, vous pourriez utiliser
(DateTime.Now.Millisecond % 2) - double DateTime.Now.Millisecond % (double) 10) / 10