标记枚举是为标记相互包含而使用的,每个成员被赋给一个唯一的按位值。
    用按位或运算符(|)来组合按位标记。用按位和运算符(&)来确定一个标记的存在。
    从组合状态中去掉一个元素用& (~)。
示例代码:
 1 using System;
using System;
2 using System.Collections.Generic;
using System.Collections.Generic;
3 using System.Text;
using System.Text;
4
5 namespace ConsoleApplication1
namespace ConsoleApplication1
6 {
{
7 class Program
    class Program
8 {
    {
9 [Flags]
        [Flags]
10 public enum Contribution
        public enum Contribution
11 {
        {
12 Pension=0x01,
            Pension=0x01,
13 ProfitSharing=0x02,
            ProfitSharing=0x02,
14 CreditBureau=0x04,
            CreditBureau=0x04,
15 SavingsPlan=0x08,
            SavingsPlan=0x08,
16 All = Pension | ProfitSharing | CreditBureau | SavingsPlan
            All = Pension | ProfitSharing | CreditBureau | SavingsPlan
17 }
        }
18 public class Employee
        public class Employee
19 {
        {
20 private Contribution prop_contributions;
            private Contribution prop_contributions;
21 public Contribution contributions
            public Contribution contributions
22 {
            {
23 get { return prop_contributions; }
                get { return prop_contributions; }
24 set { prop_contributions = value; }
                set { prop_contributions = value; }
25 }
            }
26 }
        }
27
28 public class Starter
        public class Starter
29 {
        {
30 public static void Main()
            public static void Main()
31 {
            {
32 Employee bob = new Employee();
                Employee bob = new Employee();
33 bob.contributions = Contribution.ProfitSharing | Contribution.CreditBureau;
                bob.contributions = Contribution.ProfitSharing | Contribution.CreditBureau;
34 if ((bob.contributions & Contribution.ProfitSharing) == Contribution.ProfitSharing)
                if ((bob.contributions & Contribution.ProfitSharing) == Contribution.ProfitSharing)
35 {
                {
36 Console.WriteLine("Bob enrolled in profit sharing");
                    Console.WriteLine("Bob enrolled in profit sharing");
37 Console.WriteLine(bob.contributions);
                    Console.WriteLine(bob.contributions);
38 bob.contributions = bob.contributions & (~Contribution.ProfitSharing);
                    bob.contributions = bob.contributions & (~Contribution.ProfitSharing);
39 Console.WriteLine(bob.contributions);
                    Console.WriteLine(bob.contributions);
40 }
                }
41 }
            }
42 }
        }
43 }
    }
44 }
}
 using System;
using System;2
 using System.Collections.Generic;
using System.Collections.Generic;3
 using System.Text;
using System.Text;4

5
 namespace ConsoleApplication1
namespace ConsoleApplication16
 {
{7
 class Program
    class Program8
 {
    {9
 [Flags]
        [Flags]10
 public enum Contribution
        public enum Contribution11
 {
        {12
 Pension=0x01,
            Pension=0x01,13
 ProfitSharing=0x02,
            ProfitSharing=0x02,14
 CreditBureau=0x04,
            CreditBureau=0x04,15
 SavingsPlan=0x08,
            SavingsPlan=0x08,16
 All = Pension | ProfitSharing | CreditBureau | SavingsPlan
            All = Pension | ProfitSharing | CreditBureau | SavingsPlan17
 }
        }18
 public class Employee
        public class Employee19
 {
        {20
 private Contribution prop_contributions;
            private Contribution prop_contributions;21
 public Contribution contributions
            public Contribution contributions22
 {
            {23
 get { return prop_contributions; }
                get { return prop_contributions; }24
 set { prop_contributions = value; }
                set { prop_contributions = value; }25
 }
            }26
 }
        }27

28
 public class Starter
        public class Starter29
 {
        {30
 public static void Main()
            public static void Main()31
 {
            {32
 Employee bob = new Employee();
                Employee bob = new Employee();33
 bob.contributions = Contribution.ProfitSharing | Contribution.CreditBureau;
                bob.contributions = Contribution.ProfitSharing | Contribution.CreditBureau;34
 if ((bob.contributions & Contribution.ProfitSharing) == Contribution.ProfitSharing)
                if ((bob.contributions & Contribution.ProfitSharing) == Contribution.ProfitSharing)35
 {
                {36
 Console.WriteLine("Bob enrolled in profit sharing");
                    Console.WriteLine("Bob enrolled in profit sharing");37
 Console.WriteLine(bob.contributions);
                    Console.WriteLine(bob.contributions);38
 bob.contributions = bob.contributions & (~Contribution.ProfitSharing);
                    bob.contributions = bob.contributions & (~Contribution.ProfitSharing);39
 Console.WriteLine(bob.contributions);
                    Console.WriteLine(bob.contributions);40
 }
                }41
 }
            }42
 }
        }43
 }
    }44
 }
} 
                    
                 


 
     
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号