Comment mettre tous les bits de l'enum drapeau

Je me demande une méthode générique pour la configuration de tous les bits de enum drapeau à 1.
J'aimerais juste avoir un enum qui renvoie pour toutes les comparaisons, indépendamment des autres énumérations.

Et ce code fonctionne;

[Flags]
public enum SomeRightEnum : uint
{
    CanDoNothing = 0,
    CanDoSomething = 1 << 0,
    CanDoSomethingElse = 1 << 1,
    CanDoYetAnotherThing = 1 << 2,
    ...
    DoEverything = 0xFFFFFFFF 
}

Mais dans le code ci-dessus, car il est uint nous avons fixé le nombre de "F"s, ça ne marcherait pas si c'était int.

Donc je vais apprécier d'une façon générique de l'établissement de tous les bits de enum drapeau à 1, quel que soit le type de données (int, int64, uint etc)

  • Hmmm. L'intention des énumérations est de décrire les options mutuellement exclusives. Vous semblez être de les utiliser comme raccourci pour un tas de masques de bits.
  • Vous êtes à l'aide de la [Drapeaux] l'attribut dans l'enum droit?
  • L' [Drapeaux] attribut sur l'enum est conçu à cet effet.
  • Blanc: L'attribut Flags est purement esthétique, vous POUVEZ utiliser des "drapeaux" sans elle.
  • bien sûr, j'ai édité, juste oublièrent de le copier
  • ideone.com/qkc8b
  • Le ToString représentation de la cosmétique. La sémantique et les comportements est identique avec ou sans le Flags attribut.

InformationsquelleAutor AFgone | 2011-09-19