枚举类型或运算

1.使用枚举类型进行按位或运算,应该用2的幂(1、2、4、8等) 来定义枚举常量,以确保组按位运算结果与枚举中的各个标志都不重叠;

2.当可能需要对枚举类型进行按位运算时,应该对枚举使用FlagsAttribute /Flags属性,这样当对枚举使用按位运算时才可以解析出各个具体的枚举常量名,而不仅仅是组合值;

3. None 用作值为零的标志枚举常量的名称;

4.如果明显存在应用程序需要表示的默认情况,考虑使用值为零的枚举常量表示默认值。

示例代码1,不加FlagsAttribute:

 1 class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             OprationType opration = OprationType.Read | OprationType.Write;
 6 
 7             Console.WriteLine(opration.ToString());
 8             Console.Read();
 9         }
10     }
11 
12     //[FlagsAttribute]
13     public enum OprationType
14     {
15         None = 0,
16         Read=1,
17         Write=2,
18     }
View Code

运行结果:

示例代码2,加入FlagsAttribute:

 1  class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             OprationType opration = OprationType.Read | OprationType.Write;
 6 
 7             Console.WriteLine(opration.ToString());
 8             Console.Read();
 9         }
10     }
11 
12     [FlagsAttribute]
13     public enum OprationType
14     {
15         None = 0,
16         Read=1,
17         Write=2,
18     }
View Code

运行结果:

5.枚举中的-=操作

示例代码:

 1 class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             OprationType opration = OprationType.Read | OprationType.Write;
 6             opration -= OprationType.Write;
 7             Console.WriteLine(opration.ToString());
 8             Console.Read();
 9         }
10     }
11 
12     [FlagsAttribute]
13     public enum OprationType
14     {
15         None = 0,
16         Read=1,
17         Write=2,
18     }
View Code

运行结果:

 

参考:http://msdn.microsoft.com/zh-cn/library/system.enum.aspx

转载于:https://www.cnblogs.com/RoyYu/p/3904379.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值