[Flags] Attributs énumérés dans [ C #: Comprendre son rôle
Lors de la définition de l'énumération en C #, si l'énumération représente l'ensemble des valeurs plutôt qu'une seule valeur, vous pouvez utiliser la propriété [Flags]. Cet attribut est particulièrement utile dans l'énumération de l'opérateur d'utilisation.
Contrairement à l'incompréhension universelle, l'attribut [Flags] fournit une forme de représentation plus lisible par la méthode . L'énumération marquée de [Flags] sortira sa valeur, et la valeur est affichée sous la forme d'un signe d'une séparation de virgules.
La valeur de puissance de 2 .ToString()
<code class="language-csharp">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"</code>
La déclaration correcte:
Obtenez des valeurs différentes:
Pour récupérer les différentes valeurs dans les attributs d'énumération, vous pouvez utiliser plusieurs méthodes:
<code class="language-csharp">[Flags] public enum MyColors { Yellow = 1, Green = 2, Red = 4, Blue = 8 }</code>
Utiliser <.> (. Net 4 et versions supérieures disponibles):
.HasFlag()
<code class="language-csharp"> if (myProperties.AllowedColors.HasFlag(MyColor.Yellow)) { // Yellow is allowed... }</code>
[FLAGS] sont autorisées à utiliser des valeurs binaires en fonctionnant par bit Computing. En utilisant la valeur de puissance de 2 comme valeur d'énumération, le binaire sous-jacent de la valeur signifie qu'il permet des calculs efficaces et significatifs.
<code class="language-csharp"> if ((myProperties.AllowedColors & MyColor.Yellow) == MyColor.Yellow) { // Yellow is allowed... }</code>
Dans certaines énumérations, il contient 0 valeurs (généralement nommé "Aucun"). Cependant, il convient de noter que la position et les opérations impliqués dans la valeur sans renvoient toujours 0, il ne convient donc pas pour tester des signes spécifiques. Vous pouvez utiliser une comparaison logique.
Pour plus d'informations et de ressources sur les attributs [Flags], son mode d'utilisation et de conception, consultez la documentation MSDN.
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!