Heim >Backend-Entwicklung >C++ >Wie funktioniert das C# [Flags] Enum -Attribut mit bitweisen Operationen?
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]
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]
ToString()
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
<code class="language-csharp">if (myProperties.AllowedColors.HasFlag(MyColor.Yellow)) { // 允许黄色... }</code>00000100
<code class="language-csharp">if ((myProperties.AllowedColors & MyColor.Yellow) == MyColor.Yellow) { // 允许黄色... }</code>
Das
-Logo normalerweise mit 0Das 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!