Basculer une variable booléenne en C#
-
Basculer une variable booléenne en
C#
-
Utilisez le
!
Opérateur pour basculer une variable booléenne enC#
-
Pourquoi vous ne devriez pas utiliser l’opérateur
^
(XOR) pour basculer les variables booléennes enC#
![Basculer une variable booléenne en C#](/img/Csharp/feature-image---csharp-toggle-bool.webp)
Cet article nous apprend comment basculer les variables booléennes en C#.
Basculer une variable booléenne en C#
Basculer une variable booléenne signifie changer sa valeur entre true
et false
. Une façon simple de le faire est d’utiliser le code suivant, qui peut également être transformé en fonction :
bool flag = false;
if (flag == false) {
flag = true;
} else {
flag = false;
}
Au cas où vous deviez créer une fonction, vous pourriez faire quelque chose comme ceci :
using System;
class Program
{
static void toggle(ref bool flag)
{
if (flag == false)
{
flag = true;
}
else
{
flag = false;
}
}
static void Main(String[] args)
{
bool flag = false;
toggle(ref flag);
Console.WriteLine(flag);
}
}
Nous avons utilisé le mot clé ref
pour nous assurer que le paramètre flag
est passé par référence, il est donc modifié à l’intérieur de la fonction.
La sortie sera la suivante :
True
Voyons maintenant comment omettre ces longues lignes de code et les transformer en lignes beaucoup plus courtes.
Utilisez le !
Opérateur pour basculer une variable booléenne en C#
Une façon de faire ce basculement dans une syntaxe simple est d’utiliser le !
opérateur qui convertit la valeur en son contraire.
Nous pouvons donc écrire quelque chose comme suit :
flag = !flag;
Si le flag
est true
, il deviendra False
. S’il est false
, il deviendra True
.
La sortie sera la même :
True
Le code complet a été documenté ci-dessous :
using System;
class Program
{
static void Main(string[] args)
{
bool flag = false;
flag = !flag;
Console.WriteLine(flag);
}
}
Pourquoi vous ne devriez pas utiliser l’opérateur ^
(XOR) pour basculer les variables booléennes en C#
L’opérateur XOR a tendance à convertir uniquement la valeur de la variable bool si elle est true
en false
. Cependant, cela ne fonctionnera pas pour les cas opposés où la valeur est déjà false
.
Jetons un coup d’œil à un exemple ci-dessous :
using System;
class Program
{
static void Main(string[] args)
{
bool flag = true;
flag ^= flag;
Console.WriteLine(flag);
}
}
Si nous devions exécuter ce qui précède, la sortie deviendrait :
False
Mais si le flag
était défini sur false
, mettre un XOR dessus ne le changera pas en True
.
using System;
class Program
{
static void Main(string[] args)
{
bool flag = false;
flag ^= flag;
Console.WriteLine(flag);
}
}
La sortie est maintenant :
False
Pourquoi? Eh bien, 1
est true
et 0
est false
. En mettant un XOR avec le flag
étant true
, le résultat deviendrait 0
ou false
.
Mais si nous mettons le XOR avec le flag
étant false
, le résultat restera toujours 0
. Si vous vous souvenez de la table XOR, voici comment cela fonctionne :
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub