A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 师弟 中级黑马   /  2013-12-5 19:48  /  1130 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 师弟 于 2013-12-8 17:03 编辑

几个枚举值位与运算再赋给这个枚举的变量,然后这些个枚举值能全部保存。是什么原理?
枚举中Flags特性是什么?

评分

参与人数 1技术分 +1 收起 理由
茹化肖 + 1

查看全部评分

4 个回复

倒序浏览
枚举就是定义了一系列“名/数值”对应关系,使用Enum创建.枚举前加上一个[Flags]属性,就可以变成位标志,以便方便地进行组合.位标志中每一个标志的值应该是2的n次方。枚举我们一般有两种用法,一是表示唯一的元素序列,例如一周里的各天;还有就是用来表示多种复合的状态。后者我们就要使用flags。原理是,每一个标志的值是2的n次方,用二进制表示就是,1:00000001, 2:00000010,4:00000100,如此这样。这样我们观察复合之后的结果内的1的位置和数量就知道是如何复合的,比如1或2的结果就是00000011.

评分

参与人数 1技术分 +1 收起 理由
陈福军 + 1

查看全部评分

回复 使用道具 举报
顶一下上楼
回复 使用道具 举报
如果问题得到解决,请修改为已解决
回复 使用道具 举报
其实位标志就是一个位集合,其中有些位on,有些位off。枚举是一个数值,是位集合中若干值的累加。
在枚举上应用[Flags]属性,就可以用枚举来表示一组可以组合的位标志,一般要定义一个值为0的None符号。
eg:
public Enum Lianxi
{
wanShua=0x0002,
chiFan=0x0003,
kanShu=0x0004
}

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马