Use enum data as flags : enum « Data Type « C# / CSharp Tutorial






using System;
using System.Collections.Generic;
using System.Reflection;
using System.Runtime.InteropServices;

[Flags]
enum FileAccess
{
    Read = 1,
    Write = 2,
    ReadWrite = 3
}


public class MainClass
{
   public static void Main(){
        FileAccess rw1 = FileAccess.Read | FileAccess.Write;
        Console.WriteLine("rw1 == {0}", rw1);
        FileAccess rw2 = FileAccess.ReadWrite;
        Console.WriteLine("rw2 == {0}", rw2);

        Console.WriteLine("rw1 == rw2? {0}", rw1 == rw2);

        if (rw1 == FileAccess.Read)
            Console.WriteLine("try #1: read permitted");
        else
            Console.WriteLine("try #1: read denied");

        if ((rw2 & FileAccess.Read) != 0)
            Console.WriteLine("try #2: read permitted");
        else
            Console.WriteLine("try #2: read denied");
   }
}
rw1 == ReadWrite
rw2 == ReadWrite
rw1 == rw2? True
try #1: read denied
try #2: read permitted








2.36.enum
2.36.1.Enumerations
2.36.2.Declaration of enum data type
2.36.3.Define constants with const keywords and enum
2.36.4.Readonly Fields with enum
2.36.5.Use enum type categorize objects
2.36.6.Pass enum data to a method
2.36.7.Assign int value to enumerations
2.36.8.Enumerations Initialization with calculation
2.36.9.Enumerations Initialization with integer value
2.36.10.Output enum element value
2.36.11.Loop through the enum data type
2.36.12.Use an enumeration to index an array
2.36.13.Assign enum value from a member and variable
2.36.14.Use enum data as flags
2.36.15.Using enum as a member for a struct
2.36.16.Print out the details of any enum