枚举转换集合,flagAttribute的意义

枚举即单选

集合即多选

 

将集合问题变成是非逻辑问题,两个元素的集合,是非问题。

将单选问题转换成集成问题,

例如如果有集合{1,2,3}转换成枚枚举则有

C3(1)+C3(2)+C3(3)=3+6+1=10

即{1}{2}{3}{1,2}{2,3}{1,2,3}

 

举列:

问题采用枚举互斥方式

if(true1)

return 1

if(true2)

return 2

if(true1&true2)

return 3

 

如果现在还采用枚举方式,则如需10个if,else,而改为集合,则:

服务端返回“1,2,3”字符串(分隔组合方式,这种方式比较多)

然后js再indexof(1)>0则,msg+="tip1";

则只需三个if。

 

如果采用枚举组合方式,枚举元素有问题()1,2,4)

if(1,2,3,4,5,6,7)用三个数,表达了7种情况

 

1,2,5

10,20,50

100

可重复组合方式

 

=====================

flagAttribute的位枚举也在于此,

位标记集合是一种由组合出现的元素形成的列表,通常设计为以“位或”运算组合新值;枚举类型则通常表达一种语义相对独立的数值集合。而以枚举类型来实现位标记集合是最为完美的组合,简称为位枚举

 

位的两种运算&,|就可以将单选进行组合与筛选,即类似于+,-

这就是单选转换成了多选,select单选菜单转换成了多选列表。

 

flagAttribute的用法更多可参考:

http://book.csdn.net/bookfiles/684/10068421452.shtml

http://www.cnblogs.com/aiyagaze/archive/2006/09/15/505614.html

 

Flags特性影响ToString、Parse和Format方法的执行过程和结果。

 

枚举本质是给程序员用的,友好化信息而已,对于使用者及电脑都没意义。

 

 

 

==================

是,否,全部,互斥单选问题

是,否,多选即可解决

 

意义非常重大

 

网页控件中本质只有,单选(菜单select),多选(列表select),文本框(单行,多行,二进制文件框。无需输入hidden)

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值