码迷,mamicode.com
首页 > 其他好文 > 详细

枚举类型或运算

时间:2014-08-11 14:22:52      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   os   io   2014   

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

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

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

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

示例代码1,不加FlagsAttribute:

bubuko.com,布布扣
 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

运行结果:

bubuko.com,布布扣

示例代码2,加入FlagsAttribute:

bubuko.com,布布扣
 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

运行结果:

bubuko.com,布布扣

5.枚举中的-=操作

示例代码:

bubuko.com,布布扣
 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

运行结果:

bubuko.com,布布扣

 

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

枚举类型或运算,布布扣,bubuko.com

枚举类型或运算

标签:style   blog   http   color   使用   os   io   2014   

原文地址:http://www.cnblogs.com/RoyYu/p/3904379.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!