Maison >développement back-end >C++ >Comment l'attribut C # [FLAGS] ENUM ACTIRE les opérations de bit sur les énumérations?

Comment l'attribut C # [FLAGS] ENUM ACTIRE les opérations de bit sur les énumérations?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-02-02 14:46:09193parcourir

How Does the C# [Flags] Enum Attribute Enable Bitwise Operations on Enumerations?

Comprendre [Flags] dans C # Attributs énumérés

L'attribut de C # est utilisé pour définir l'énumération qui représente plusieurs valeurs possibles, pas une seule valeur. Les ascenseurs utilisant cet attribut peuvent être utilisés avec le symbole de fonctionnement du bit, afin de combiner et d'analyser plusieurs valeurs dans une variable.

Valeur de putting et d'énumération [Flags]

L'attribut lui-même n'applique pas automatiquement l'opérateur. La valeur des membres d'énumération doit être attribuée de manière appropriée pour prendre en charge l'opération de bit. Si la valeur n'est pas affichée, la valeur passera de 0, ce qui ne fonctionnera pas correctement à la place de l'informatique. L'instruction énumération correcte

[Flags] Afin d'utiliser efficacement les opérations d'énumération et de bit, la valeur de l'élément d'énumération devrait être la puissance de 2. Par exemple:

Récupérer une seule valeur

Pour récupérer la valeur unique de énuméré, vous pouvez utiliser la méthode

ou exécuter la position et l'opération:
<code class="language-csharp">[Flags]
public enum MyColors
{
    Yellow = 1,
    Green = 2,
    Red = 4,
    Blue = 8
}</code>

Pour la version précédente du .NET 4, utilisez la position et l'opération:

Le principe de la couche inférieure [Flags] HasFlag()

La raison de l'utilisation de la puissance de 2 dans l'énumération est qu'ils se convertissent directement en représentations binaires. Lors de l'utilisation de la position ou de la combinaison de l'opération, la valeur binaire générée reflète l'étiquette de l'activation. De même, un seul logo peut être testé en fonction de la position et de l'opération.
<code class="language-csharp">if (myProperties.AllowedColors.HasFlag(MyColor.Yellow)) { ... }</code>

Aucune Valeur

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

La valeur peut être utilisée comme espace réservée sans signe. Cependant, il ne peut pas être utilisé pour la position et le fonctionnement, car il calcule toujours le résultat de zéro. Vous pouvez utiliser la comparaison logique pour vérifier si un bit est défini:

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