Maison >développement back-end >C++ >Comment l'attribut C # [Flags] activait-il les opérations bitwise en énum?
Tiration de l'attribut C # [Flags]
pour les opérations d'énumération bitwise
L'attribut [Flags]
en C # permet aux énumérations de fonctionner comme des ensembles de drapeaux, prenant en charge les combinaisons bit
Fonctionnalité d'attribut: [Flags]
|
La représentation de chaîne d'une énumération signalée affiche tous les drapeaux actifs, soigneusement séparés par les virgules. Ici, agit comme un ensemble de drapeaux. Les options de combinaison sont réalisées à l'aide du bit ou de l'opérateur:
<code class="language-csharp">[Flags] public enum Options { None = 0, OptionA = 1, OptionB = 2, OptionC = 4, OptionD = 8 }</code>
Options
maintiendra la valeur 6 (2 4), ce qui signifie que
<code class="language-csharp">var combinedOptions = Options.OptionB | Options.OptionC; </code>sont actifs.
combinedOptions
OptionB
Considérations importantes: OptionC
Pouvoirs de deux:
Pour les opérations sans couture sur le sens bit, les valeurs d'énumération doivent être des pouvoirs de deux (1, 2, 4, 8, etc.).None
0
Identification des drapeaux individuels: La méthode (disponible à partir de .NET 4) vérifie efficacement si un drapeau spécifique est présent:
HasFlag()
Mécanisme interne:
<code class="language-csharp">if (combinedOptions.HasFlag(Options.OptionB)) { // OptionB is set }</code>
L'attribut facilite l'utilisation des valeurs d'énumération comme indicateurs de bits. Leurs représentations binaires sous-jacent les opérations bit
Lire plus approfondie: [Flags]
Microsoft Docs: Flags Attribut
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!