Basculer une variable booléenne en C#

Bilal Shahid 15 février 2024
  1. Basculer une variable booléenne en C#
  2. Utilisez le ! Opérateur pour basculer une variable booléenne en C#
  3. Pourquoi vous ne devriez pas utiliser l’opérateur ^ (XOR) pour basculer les variables booléennes en C#
Basculer une variable booléenne en C#

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 :

Table XOR

Auteur: Bilal Shahid
Bilal Shahid avatar Bilal Shahid avatar

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

Article connexe - Csharp Boolean