Heim > Backend-Entwicklung > C++ > Wie funktioniert das C# [Flags] Enum -Attribut mit bitweisen Operationen?

Wie funktioniert das C# [Flags] Enum -Attribut mit bitweisen Operationen?

Patricia Arquette
Freigeben: 2025-02-02 14:51:09
Original
260 Leute haben es durchsucht

How Does the C# [Flags] Enum Attribute Work with Bitwise Operations?

im Depetenverständnis von [Flags] in C# -Erumationsattributen

In C#spielt das

Attribut eine wichtige Rolle bei der Definition einer Reihe möglicher Möglichkeiten von Möglichkeiten. Diese Aufzählungen werden normalerweise zusammen mit der Positionierung der Position verwendet, um mehrere Optionen gleichzeitig zu kombinieren und zu bedienen.

[Flags] [Flags] Die Rolle des Attributs

Das Attribut zeigt die Kombination eines Aufzählungswerts an, nicht auf einen einzelnen Wert. Dies erlaubt: <:>

Bitoperationen:

kann Bit oder Operator (| |) mit mehreren Optionen kombiniert werden. [Flags]

Einfach zu lesen Ausgang:
    Aufzählte
  • Methode zur Generierung einer von Comma -getrennten Aktivitätslogo -Liste, um die benutzerfreundliche Darstellung zu erstellen.
  • Beispiel verwendet
  • Betrachten Sie die folgende Aufzählung: ToString()
Das Verhalten der Operation

Das Attribut setzt den Aufzählungswert nicht automatisch auf die Leistung von 2. Um die Kompatibilität des Bit -Betriebs sicherzustellen, sollten Sie die Leistung von 2 manuell auf den Wert verteilen.

Fehlererklärung:

[Flags]
public enum Options
{
    None = 0,
    Option1 = 1,
    Option2 = 2,
    Option3 = 4,
    Option4 = 8
}
Nach dem Login kopieren

<确> Richtige Anweisung:

[Flags] <查> Überprüfen Sie die Kombination des Inspektionslogos

<可> Die Methode kann verwendet werden, um zu überprüfen, ob das Attribut bestimmte Zeichen enthält:

[Flags]
public enum MyColors
{
    Yellow,  // 0
    Green,   // 1
    Red,     // 2
    Blue     // 3
}
Nach dem Login kopieren
<位> Verwenden Sie Bitoperator

Vor .net 4 können Sie die Position und das operative Symbol (&) verwenden, um die Existenz des Logos zu überprüfen:

[Flags]
public enum MyColors
{
    Yellow = 1,
    Green = 2,
    Red = 4,
    Blue = 8
}
Nach dem Login kopieren

<底> Der zugrunde liegende Mechanismus: Position zeigt an

Der Wert der Aufzählung wird in Form von Binärer dargestellt. Bei der Verwendung der Leistung von 2 betreibt der Positionierungsbrand jedes Bit:

HasFlag

rot:
if (myProperties.AllowedColors.HasFlag(MyColor.Yellow))
{
    // 允许黄色...
}
Nach dem Login kopieren
00000100

grün: 00000010

erlaubteColors (rot | grün):

00000110
if ((myProperties.AllowedColors & MyColor.Yellow) == MyColor.Yellow)
{
    // 允许黄色...
}
Nach dem Login kopieren

None Wert

Das

-Logo normalerweise mit 0
    Logo wird nicht auf die Position und den Betrieb angewendet. Dies liegt daran, dass das Ergebnis immer 0 beträgt. Sie können jedoch einen logischen Vergleich (==) verwenden, um festzustellen, ob ein bisschen Einstellungen vorhanden sind.

Das obige ist der detaillierte Inhalt vonWie funktioniert das C# [Flags] Enum -Attribut mit bitweisen Operationen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage