枚举类型或运算

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     }

运行结果:

示例代码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     }

运行结果:

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     }

运行结果:

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

枚举类型或运算

时间: 2024-10-10 07:11:32

枚举类型或运算的相关文章

枚举类型与位运算

目录 枚举 位运算 一.枚举 枚举类型是名称与值的组合. 枚举类型是值类型. 1.为什么枚举类型是名称与值得组合?有时我只看到键名称,没有看到相对的值. public enum Options { Insert, Update, Save, Delete, Query } 编译器会给上面补充完整 public enum Options { Insert=0, Update=1, Save=2, Delete=3, Query=4 } 默认从0开始,依次赋值. 2.为什么枚举类型是值类型 因为Sy

C#之枚举类型

参考: http://www.cnblogs.com/an-wl/archive/2011/04/14/2015815.html 惯例先上MSDN: https://msdn.microsoft.com/zh-cn/library/cc138362(v=vs.110).aspx 枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法.例如,假设您必须定义一个变量,该变量的值表示一周中的一天.该变量只能存储七个有意义的值.若要定义这些值,可以使用枚举类型.枚举类型是使用en

iOS/object-c: 枚举类型 enum,NS_ENUM,NS_OPTIONS

一般情况下,我们采用C风格的enum关键字可以定义枚举类型. [cpp] view plaincopy enum{ UIViewAnimationTransitionNone, UIViewAnimationTransitionFlipFromLeft, UIViewAnimationTransitionFlipFromRight, UIViewAnimationTransitionCurlUp, UIViewAnimationTransitionCurlDown, } UIViewAnimat

第十五章 枚举类型和位标志

1. 概述 本章内容包括 枚举类型.位标志 以及 为枚举类型添加方法. 2. 主要内容 2.1 枚举类型 枚举类型定义了一组“符号名称/值”配对. 枚举类型的好处包括: ① 可以使程序更容易编写.阅读和维护. ② 枚举类型是强类型的,有编译器检测. 编译枚举类型时,C#编译器会把每个符号转换成类型的一个常量字段. System.Enum类型有一个名为GetUnderlyingType的静态方法,返回用于容纳一个枚举类型的值的基础类型. Enum.GetUnderlyingType(typeof(

枚举类型的定义和应用

1.枚举类型定义: TYPE  days     = (Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);  //枚举类型,属于顺序类型,序号从0开始  colors   =(red,yellow,blue,green,black);                               //可以同时多个枚举类型定义  //下面定义方法是错误的  days_e1  =('Sunday','Monday','Tuesday',

java 枚举类型使用总结

注:阅读了effective java 讲诉enum的部分,做下笔记,下文中大部分代码来自effective java书中 枚举类型是指由一组固定的常量组成的合法值得类型. 使用枚举的好处:a,因为没有可以访问的构造器,枚举类型是真正的final; b,枚举类型提供类编译时的类型安全.如:函数中声明一个参数类型为枚举类型的Apple时,那么调用方法时传递到参数上的任何非null对象一定是Apple的值之一, 而是用静态常量就无法保证; c,包含同名常量的多个枚举类型可以和平共处,每个类型都有自己

网易云课堂_C语言程序设计进阶_第一周:数据类型:整数类型、浮点类型、枚举类型

C语言程序设计进阶_第一周:数据类型:整数类型.浮点类型.枚举类型 1.0数据类型 1.1整数类型 1.2浮点类型 1.3逻辑类型 1.4类型转换和条件运算 1.0数据类型 1 整数 char(%c), short, int(%d), long(%ld), long long(C99) 2 浮点数 float(%f), double(%lf), long double(C99) 3 逻辑 bool(C99) 4 指针 5 自定义类型 所表达的数的范围:char<short<int<flo

深入理解Java枚举类型(enum)

[版权申明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/71333103 出自[zejian的博客] 关联文章: 理解Java位运算 深入理解Java类型信息(Class对象)与反射机制 本篇主要是深入对Java中枚举类型进行分析,主要内容如下: 理解枚举类型 枚举的定义 枚举实现原理 枚举的常见方法 Enum抽象类常见方法 编译器生成的Values方法与ValueOf方法 枚举与Clas

枚举类型enum

枚举类型的定义 枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合. 定义格式:枚举类型的定义格式为:    enum <类型名> {<枚举常量表>};其中: 关键字enum——指明其后的标识符是一个枚举类型的名字. 枚举常量表——由枚举常量构成.“枚举常量”或称“枚举成员”,是以标识符形式表示的整型量,表示枚举类型的取值.枚举常量表列出枚举类型的所有取值,各枚举常量之间以“,”间隔,且必须各不相同.取值类型与条件表达式相同. 应用举