枚舉類型或運算


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM