Maison >développement back-end >C++ >Comment l'attribut C # [Flags] activait-il les opérations bitwise en énum?

Comment l'attribut C # [Flags] activait-il les opérations bitwise en énum?

Patricia Arquette
Patricia Arquetteoriginal
2025-02-02 15:06:11912parcourir

How Does the C# [Flags] Attribute Enable Bitwise Operations in Enums?

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]

Cet attribut permet:

  • Combinaisons bit Représentation de chaîne améliorée: | La représentation de chaîne d'une énumération signalée affiche tous les drapeaux actifs, soigneusement séparés par les virgules.
  • Exemple illustratif:

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

et
<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.).
  • Valeur:
  • La valeur
  • signifie qu'aucun indicateur n'est défini. L'utilisation directe dans le sens bit et les opérations ne sont pas recommandées. 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

  • Microsoft Docs: Concevoir des drapeaux Enum

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn