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

2

3

4

5

6


7

8


9

10

11


12

13

14

15

16

17

18

19


20

21

22


23


24


25

26

27

28

29


30

31


32

33

34

35


36

37

38

39

40

41

42

43

44

相关阅读 更多 +