zoukankan      html  css  js  c++  java
  • 枚举类型或运算

    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

  • 相关阅读:
    线性判别分析(线性回归、对数几率回归、线性判别分析和广义线性判别分析)
    Fisher线性判别分析
    隐马尔科夫模型
    EM算法及其推广
    boosting方法
    支持向量机
    拉格朗日函数/对偶(转)
    逻辑斯特回归与最大熵模型
    决策树
    回家
  • 原文地址:https://www.cnblogs.com/RoyYu/p/3904379.html
Copyright © 2011-2022 走看看