Home
Browse all 647 examples
Download all 647 examples
Download sample chapters
Reviews
Errata
Acknowledgments
Links on .NET
Paradoxal Press

Buy directly from Paradoxal Press at $33.99 (Save 43%)



Category: Programming
Level: Beginner to seasoned
900 pages
ISBN-10 097661322-0
ISBN-13 978-097661322-0
$59.99 USA
$79.99 CANADA


Listing 10-28 extracted from chapter The .NET 2 type system from a C#2 point of view


Listing 10-27<     > Listing 10-29


This listing can be compiled with the command line:
csc.exe /target:exe Example_10_28.cs
Errors: 0 Warnings: 0


Example_10_28.cs
// Don't need more than a byte to store 3 binary flags.
[System.Flags()]
enum Flags : byte { 
   Flag1 = 0x01, // The first bit is true, the others are false.
   Flag2 = 0x04, // The third bit is true, the others are false.
   Flag3 = 0x10  // The fifth bit is true, the others are false.
}
class Program {
   public static void Main() {
      // flag is equal to 10001000 (binary notation).
      Flags flag = Flags.Flag1 | Flags.Flag3;
      // (If the first bit is set) equivalent to (If Flag1 is set).
      if ( (flag & Flags.Flag1) > ) { /* */ }
      // (If the 3th and 5th are set) equivalent to 
      // (If Flag2 and Flag3 are set).
      if ( (flag & Flags.Flag2) > && (flag & Flags.Flag3) > ){ /* */ }
      System.Console.WriteLine( flag.ToString() );
   }
}	
Copyright Patrick Smacchia 2006 2007