Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 4th, 2012  |  syntax: None  |  size: 0.46 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Flags- and non-flags-variant of an enum
  2. enum Color { Red, Blue, Green }
  3.  
  4. [Flags]
  5. enum Colors {
  6.     None = 0,
  7.     Red = 1,
  8.     Blue = 2,
  9.     Green = 4
  10. }
  11.  
  12. // use cases
  13. Color currentColor;
  14. Colors supportedColors;
  15.        
  16. Colors currentColor; // ugly, since neither "None" nor "Red | Blue" should be valid
  17.        
  18. enum Colors = Flag set of Color;
  19.        
  20. var flags = (Color)47; // why not
  21.        
  22. bool IsColorValid(Color color)
  23. {
  24.     return (color != 0 && (color & (color - 1)) == 0);
  25. }