Umschalten einer booleschen Variable in C#
-
Umschalten einer booleschen Variable in
C#
-
Verwenden Sie das
!
Operator zum Umschalten einer booleschen Variablen inC#
-
Warum Sie den Operator
^
(XOR) nicht verwenden sollten, um boolesche Variablen inC#
umzuschalten
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:
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