Umschalten einer booleschen Variable in C#

Bilal Shahid 15 Februar 2024
  1. Umschalten einer booleschen Variable in C#
  2. Verwenden Sie das ! Operator zum Umschalten einer booleschen Variablen in C#
  3. Warum Sie den Operator ^ (XOR) nicht verwenden sollten, um boolesche Variablen in C# umzuschalten
Umschalten einer booleschen Variable in C#

Dieser Artikel lehrt uns, wie wir boolesche Variablen in C# umschalten können.

Umschalten einer booleschen Variable in C#

Das Umschalten einer booleschen Variablen bedeutet, dass ihr Wert zwischen true und false geändert wird. Eine einfache Möglichkeit, dies zu tun, besteht darin, den folgenden Code zu verwenden, der auch in eine Funktion umgewandelt werden kann:

bool flag = false;
if (flag == false) {
  flag = true;
} else {
  flag = false;
}

Falls Sie eine Funktion erstellen würden, könnten Sie Folgendes tun:

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);
   }
}

Wir haben das Schlüsselwort ref verwendet, um sicherzustellen, dass der Parameter flag als Referenz übergeben wird, sodass er innerhalb der Funktion geändert wird.

Die Ausgabe wird wie folgt sein:

True

Sehen wir uns nun an, wie wir diese langen Codezeilen weglassen und in viel kürzere Zeilen umwandeln können.

Verwenden Sie das ! Operator zum Umschalten einer booleschen Variablen in C#

Eine Möglichkeit, dieses Umschalten in einfacher Syntax durchzuführen, ist die Verwendung des ! Operator, der den Wert in sein Gegenteil umwandelt.

Wir können also etwas wie folgt schreiben:

flag = !flag;

Wenn das flag true ist, wird es False. Wenn es false ist, wird es true.

Die Ausgabe wird die gleiche sein:

True

Der vollständige Code wurde unten dokumentiert:

using System;

class Program
{
   static void Main(string[] args)
   {
       bool flag = false;
       flag = !flag;
       Console.WriteLine(flag);
   }
}

Warum Sie den Operator ^ (XOR) nicht verwenden sollten, um boolesche Variablen in C# umzuschalten

Der XOR-Operator wandelt in der Regel nur den Wert der Bool-Variablen um, wenn er true in false ist. Es funktioniert jedoch nicht für umgekehrte Fälle, in denen der Wert bereits false ist.

Schauen wir uns unten ein Beispiel an:

using System;

class Program
{
   static void Main(string[] args)
   {
       bool flag = true;
       flag ^= flag;
       Console.WriteLine(flag);
   }
}

Wenn wir das obige ausführen würden, würde die Ausgabe wie folgt aussehen:

False

Aber wenn das flag auf false gesetzt wurde, wird es durch das Setzen eines XOR nicht auf True geändert.

using System;

class Program
{
   static void Main(string[] args)
   {
       bool flag = false;
       flag ^= flag;
       Console.WriteLine(flag);
   }
}

Die Ausgabe ist jetzt:

False

Wieso den? Nun, 1 ist true und 0 ist false. Setzt man ein XOR mit dem flag auf true, wird das Ergebnis 0 oder false.

Aber wenn wir das XOR setzen, wobei das flag false ist, bleibt das Ergebnis immer noch 0. Wenn Sie sich an die XOR-Tabelle erinnern, funktioniert sie so:

XOR-Tabelle

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

Verwandter Artikel - Csharp Boolean