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
Patricia ArquetteOriginal
2025-02-02 14:51:09218Durchsuche

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:

<code class="language-csharp">[Flags]
public enum Options
{
    None = 0,
    Option1 = 1,
    Option2 = 2,
    Option3 = 4,
    Option4 = 8
}</code>

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:

<code class="language-csharp">[Flags]
public enum MyColors
{
    Yellow,  // 0
    Green,   // 1
    Red,     // 2
    Blue     // 3
}</code>
Verwenden Sie Bitoperator

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

<code class="language-csharp">[Flags]
public enum MyColors
{
    Yellow = 1,
    Green = 2,
    Red = 4,
    Blue = 8
}</code>

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:
<code class="language-csharp">if (myProperties.AllowedColors.HasFlag(MyColor.Yellow))
{
    // 允许黄色...
}</code>
00000100

grün: 00000010

erlaubteColors (rot | grün):

00000110
<code class="language-csharp">if ((myProperties.AllowedColors & MyColor.Yellow) == MyColor.Yellow)
{
    // 允许黄色...
}</code>

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!

Stellungnahme:
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