枚舉類型或運算

1.使用枚舉類型進行按位或運算,應該用2的冪(一、二、四、8等) 來定義枚舉常量,以確保組按位運算結果與枚舉中的各個標誌都不重疊;ide

2.當可能須要對枚舉類型進行按位運算時,應該對枚舉使用FlagsAttribute /Flags屬性,這樣當對枚舉使用按位運算時才能夠解析出各個具體的枚舉常量名,而不單單是組合值;
spa

3. None 用做值爲零的標誌枚舉常量的名稱;3d

4.若是明顯存在應用程序須要表示的默認狀況,考慮使用值爲零的枚舉常量表示默認值。code

示例代碼1,不加FlagsAttribute:blog

 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

運行結果:get

示例代碼2,加入FlagsAttribute:string

 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

運行結果:it

5.枚舉中的-=操做io

示例代碼:event

 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

相關文章
相關標籤/搜索