Heim > Backend-Entwicklung > C++ > Wie verbessert das C# [Flags] Enum -Attribut bitweise Vorgänge und die Lesbarkeit der Aufzählung?

Wie verbessert das C# [Flags] Enum -Attribut bitweise Vorgänge und die Lesbarkeit der Aufzählung?

Barbara Streisand
Freigeben: 2025-02-02 14:56:10
Original
486 Leute haben es durchsucht

How Does the C# [Flags] Enum Attribute Enhance Bitwise Operations and Enumeration Readability?

[Flags] Aufzählte Attribute in [ C#: Verstehen Sie seine Rolle

Wenn die Aufzählung in C#definiert wird, können Sie die Eigenschaft [Flags] verwenden, wenn die Aufzählung eher die Wertesatz als einen einzelnen Wert darstellt. Dieses Attribut ist besonders nützlich bei der Aufzählung des Verwendungsbetreibers.

[Flags] Die Bedeutung des Attributs

Im Gegensatz zum universellen Missverständnis liefert das [Flags] Attribut eine lesbarere Repräsentationsform durch die -Methode. Die mit [Flags] gekennzeichnete Aufzählung gibt ihren Wert aus und der Wert wird in Form eines Vorzeichens einer Komma -Trennung angezeigt.

Der Leistungswert von 2 .ToString()

enum Suits { Spades = 1, Clubs = 2, Diamonds = 4, Hearts = 8 }
[Flags] enum SuitsFlags { Spades = 1, Clubs = 2, Diamonds = 4, Hearts = 8 }

...

var str1 = (Suits.Spades | Suits.Diamonds).ToString(); // "5"
var str2 = (SuitsFlags.Spades | SuitsFlags.Diamonds).ToString(); // "Spades, Diamonds"
Nach dem Login kopieren
Es muss betont werden, dass das [Flags] Attribut nicht automatisch den Leistungswert von 2 der Aufzählung automatisch zuweist. Wenn der Wert des Wertes übersprungen wird, ist die Haltung der Operation in der Position falsch, da der Standardwert von 0 steigt.

<确> Die richtige Anweisung:

<取> Erhalten Sie unterschiedliche Werte:

Um die verschiedenen Werte in den Aufzählungsattributen abzurufen, können Sie mehrere Methoden verwenden:

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

verwenden <.> (. Net 4 und höhere Versionen verfügbar):

    Verwenden Sie den Positionsoperator (vor .net 4):
  • .HasFlag()

      if (myProperties.AllowedColors.HasFlag(MyColor.Yellow))
      {
          // Yellow is allowed...
      }
    Nach dem Login kopieren
    <底> Der zugrunde liegende Mechanismus
  • [Flags] Eigenschaften dürfen Binärwerte durch Betrieb nach Bit -Computing bedienen. Durch die Verwendung des Leistungswerts von 2 als Aufzählungswert bedeutet die zugrunde liegende Binärdauer des Wertes, dass er effiziente und aussagekräftige Berechnungen ermöglicht.

      if ((myProperties.AllowedColors & MyColor.Yellow) == MyColor.Yellow)
      {
          // Yellow is allowed...
      }
    Nach dem Login kopieren
    Wenn das Attribut zum Beispiel Binärdateien nach dem Bit oder | rot, grün und blau verwendet wird, speichern Sie Binary 00001110. None = 0 Wert

    In einigen Aufzählungen enthält es 0 Werte (normalerweise als "keine"). Es ist jedoch zu beachten, dass die Position und der Operationen, die in den Ni -Wert beteiligt sind, immer wieder 0 zurückgeben, sodass sie nicht zum Testen bestimmter Zeichen geeignet ist. Sie können einen logischen Vergleich verwenden.

    Weitere Informationen und Ressourcen zu den [Flags] -attributen, dessen Verwendungs- und Entwurfsmodus finden Sie in der MSDN -Dokumentation.

    Das obige ist der detaillierte Inhalt vonWie verbessert das C# [Flags] Enum -Attribut bitweise Vorgänge und die Lesbarkeit der Aufzählung?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage