一、枚举的概念:

C# 枚举(Enum), 枚举类型是用于声明一组命名的常数的基本数据类型(值类型);

二、枚举的定义:

声明 enum 变量: 

enum  {enumeration list};

其中 enum_name 指定枚举的类型名称,enumeration list 是一个用逗号分隔的标识符列表;

枚举列表中的每个符号代表一个整数值,一个比他前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0。例如:

enum Days {Sun , Mon, tue, Fir, sat };

三、枚举的案例,枚举变量的用法:

实例

using System;namespace EnumApplication
{class EnumProgram
{enum Days { Sun, Mon, tue, Wed, thu, Fri, sat };static void Main(string[] args)
{int WeekdayStart = (int)Days.Mon;int WeekdayEnd = (int)Days.Fir;
Console.WriteLine("Monday:{0}",WeekdayStart);
Console.WriteLine("Firday:{0}",WeekdayEnd );
Console.ReadKey();
}
}
}

四、Enum 类:

所有枚举类型都隐式地继承 System.Enum 类型, System.Enum 类型是继承自 System.ValueType 类型唯一不为值类型的引用类型;

五、Enum 类:

方法描述CompareTo将此实例与指定对象进行比较并返回一个对二者的相对值的指示Equals:指示此实例是否等于指定的对象;Format根据指定格式将指定枚举类型的指定值转换为其等效的字符串表示形式GetName在指定枚举中检索具有指定值的常数的名称GetNames检索指定枚举中常数名称的数组GetTypeCode返回此实例的基础TypeCodeGetUnderlyingTye返回指定枚举的基础类型GetValues指定枚举中常数值的数组HasFlag确定当前实例中是否设置了一个或多个位域IsDefined返回指定枚举中是否存在具有指定值的常数的指示Parse将一个或多个枚举常数的名称或数字值得字符串表示转换成等效得枚举对象,一个参数指定该操作是否不区分大小写TryParse将一个或多个枚举常数得名称或数字值得字符串表示转换成等效得枚举对象,用于指示转换是否成功得返回值

六、标志枚举/位枚举

C# 标记枚举(Flags):枚举类型是用于声明一组命名得常数得基本类型数据(值类型)。

枚举值是互斥得。而位标记集合是一种由组合出现得元素形成得列表,通常设计为以"位或"运算组合新值。

枚举类型则通常表达一种语义相对独立得数值集合。而以枚举类型来实现位标记集合是最完美得组合,简称位枚举。

七、位枚举得定义  

///  /// 权限枚举  ///  [Flags]  public enum permission                     注意加了[Flags]特性后有三种写法,  {                                  一种是使用<

八、位枚举的实例

//1、给用户创建、读取,修改和删除的权限var parmission = Permission.Create | parmission.Read | parmission.Update | parmission.Delete;//2、去掉用户的修改和删除权限parmission = parmission &~parmission.Update;parmission = parmission &~parmission.Delete;//3、给用户加上修改的权限parmission = parmission | parmission.Update;//4、判断用户是否有创建的权限var isCreate = (parmission & parmission.Create)!=0;//或者var isCreate = (parmission & parmission.Create)==parmission.Create;  这时parmission枚举的值将变成0+1+4=5,它的ToSting()将变成“parmission.Create,  parmission.Read”,parmission.Update; 这里我们可以解释为什么第五个值Delete是8而不能成为5。  也就是说它的值不应该是前几项值的复合值。一个比较简单的方法  就是用2的n次方来依次位每一项赋值,例如:1,2,4,8,16,32,64.......。

集合在枚举数实例化后进行了修改_(编程知识)C# 枚举与位枚举相关推荐

  1. C#的枚举数(Enumerator)和可枚举类型(Enumerable)

    数组可以被foreach语句遍历数组中的元素,原因是数组可以按需提供一个叫做枚举数(enumerator)的对象.枚举数可以依次返回请求的数组的元素. 对于有枚举数的类型而言,必须有一个方法来获取它们 ...

  2. C#的Enumerator(枚举数) 和 Enumerable(可枚举类型)

    using System; using System.Collections; namespace EnumeratorAndEnumerable {     ///一.引言     //C#的Enu ...

  3. Java基础(二):集合、IO流(Zip压缩输入/输出流等)、File文件类、反射、枚举

    Java基础(一):编译和解释.数据类型.变量作用域.String常用方法.数组.面向对象.异常 Java基础(二):集合.IO流(Zip压缩输入/输出流等).File文件类.反射.枚举 Java异常 ...

  4. hangfire 过期记录_时隔数月后我又有减肥的想法(饮食日记录)

    时隔数月后我又有减肥的想法 10月29的这一天,和朋友喝酒, 萌生了要改变自己的想法,朋友自信的跟我说可以让我瘦下来,整个人焕然一新,先坚持一个月就好,我心里的小九九就是能瘦下来就好了,可以把以前吧能 ...

  5. 1909升级卡64_升级win10 1909后开机数分钟后出现卡死如何解决

    有用户在升级到win10 1909版本之后,发现总是会遇到各种各样的故障,比如每次开机数分钟后电脑就会出现卡死的情况,好久一会才能进入到系统,这是怎么回事呢,接下来给大家分享一下升级win10 190 ...

  6. 永别了!2200元,老外眼中的2200元神机缺货数月后下架

    近日,据9to5Google报道,在谷歌商店缺货数周后,谷歌Pixel 4a从谷歌在线商店下架.9to5Google表示谷歌Pixel 4a堪称是深受消费者喜爱的谷歌手机,349美元(约合人民币220 ...

  7. 烧钱数亿后,趣店罗敏的预制菜业务从兴到衰

    雷递网 雷建平 9月7日 从高调杀入预制菜行业,到精简业务规模,趣店CEO罗敏的短短50天经历,浓缩了一个公司业务从兴到衰的全过程. 昨日,趣店称,在评估了当前的市场状况后,公司决定精简其预制菜业务. ...

  8. 【Flutter】Dart 数据类型 List 集合类型 ( 定义集合 | 初始化 | 泛型用法 | 初始化后添加元素 | 集合生成函数 | 集合遍历 )

    文章目录 I . 定义集合并初始化 II . 集合泛型用法 III . 集合添加元素 IV . 集合生成函数 V . 集合遍历 VI . 集合示例代码 I . 定义集合并初始化 定义并初始化 List ...

  9. C++输入n(n100)个整数,找出其中最大的数,将它与最前面的数交换后输出这些数

    题目 2016校园招聘笔试题 输入n(n<100)个数,找出其中最大的数,将它与最前面的数交换后输出这些数,请你编程实现. 输入 输入数据有多行,每组占一行,每行的开始是一个整数n,表示这个测试 ...

最新文章

  1. Android清单文件详解(三)----应用程序的根节点application
  2. Python编程基础:第五十七节 reduce函数Reduce
  3. 比尔盖茨跌落第二!世界首富换人了
  4. js 获取java_js中获取当前时间
  5. C#实现文件与二进制互转并存入数据库
  6. 源码分析Dubbo Invoker概述----服务发现、集群、负载均衡、路由体系
  7. 【Java】位运算符:左移右移
  8. [转] 丢了自己,要记得找回了~~我们80后的那些忧伤
  9. 惠普HP Color LaserJet Pro MFP M476 打印机驱动
  10. Mysql如何存取Emoji表情包
  11. Microsoft SQL Server Reporting Services 初探
  12. new 与 delete 操作符
  13. 二分算法详解:整数二分及浮点数二分算法(Binary Search)(含算法模板)
  14. Git远程仓库配置SSH(以github为例)
  15. 富文本转化为普通文本
  16. Tomcat配置问题(踩坑记录)
  17. cesium入坑 -- 各种API调用与API本身使用的坑
  18. python画五星红旗
  19. Go语言的SDK是什么
  20. 冒泡排序--python(详解)

热门文章

  1. win10下安装PHP_CodeSniffer 检查编码规范
  2. yum标准化安装nginx最新版
  3. unity3d___UGui中如何创建loading...进度条
  4. 登录多实例MySQL失败,修改密码临时解决,原因不明
  5. linux基本操作之目录、vi等
  6. IE7.0默认主页修改
  7. 使用uploadify上传图片时返回“Cannot read property 'queueData' of undefined”
  8. bootstrap布局两列或者多列表单
  9. 为什么我的SQL server 在附加数据库后,数据库总是变成了只读?
  10. 使用DETR指令提取电子客票票面信息