在.NET枚举中使用位标志
如何MATLAB万博1manbetx支持按位操作系统。枚举
方法定义的枚举,许多.NET语言支持逐位万博1manbetx操作系统。旗帜
属性。MATLAB®Language没有等效的操作,因此提供了实例方法,用于对枚举对象执行逐位操作。按位的方法是bitand
,bitnot
,bitor
,bitxor
.
枚举可以定义一些旗帜.位标志允许您创建枚举的实例,以存储成员定义的值的组合。例如,文件和文件夹具有属性,例如存档
,隐藏的
,只读的
.对于给定的文件,根据这些属性中的一个或多个执行操作。使用逐位操作符,您可以创建和测试组合。
要使用逐位操作符,枚举必须具有:
的
旗帜
属性。在框架版本4中,这些枚举也具有HasFlag
方法。的幂对应的值
2
.
创建。net枚举位标志
使用MATLAB的例子,NetDocEnum。MyDays
枚举,在以下示例中。
假设你有下列安排好的活动:
周一,10点开部门会议
星期三和星期五,下午两点开团队会议
周四——排球之夜
的成员可以组合MyDays
枚举来创建MATLAB变量bitor
方法,该方法连接两个成员。例如,创建一个变量teamMtgs
团队会议天数,类型:
gg = bitor(...NetDocEnum.MyDays.Friday,...NetDocEnum.MyDays.Wednesday);
创建一个变量allMtgs
每天都要开会:
allMtgs = bitor(两组tg,...NetDocEnum.MyDays.Monday);
要查看哪些天属于每个变量,输入:
teamMtgs allMtgs
a组tg =周三,周五all组tg =周一,周三,周五
从变量中移除标志
假设你的经理取消了本周周三的会议。删除周三
从allMtgs
变量,使用bitxor
方法。
thisWeekMtgs = bitxor(所有mtgs, netdocumentum . mydays . wednesday)
thisWeekMtgs =周一,周五
使用位方法,例如bitxor
在allMtgs
不修改的值allMtgs
.这个例子创建了一个变量,thisWeekMtgs
,其中包含操作的结果。
替换变量中的标志
假设您将团队会议从周三
来周四
.删除周三
,使用bitxor
,并使用bitor
添加周四
.由于这是一个永久性更改,请更新teamMtgs
而且allMtgs
变量。
gg = bitor(...(bitand (teamMtgs...bitnot (NetDocEnum.MyDays.Wednesday))),...NetDocEnum.MyDays.Thursday);allMtgs = bitor(两组tg,...NetDocEnum.MyDays.Monday);teamMtgs allMtgs
a组tg =星期四,星期五all组tg =星期一,星期四,星期五
成员资格测试
创建以下内容RemindMe
功能:
函数RemindMe(天)% day = NetDocEnum。MyDays枚举gg = bitor(...NetDocEnum.MyDays.Friday,...NetDocEnum.MyDays.Wednesday);allMtgs = bitor(两组tg,...NetDocEnum.MyDays.Monday);如果eq(天,bitand(天,teamMtgs)) disp (“今天开团队会议。”)elseifeq(天,bitand(天,allMtgs)) disp (“今天会议。”)其他的disp (“今天没有会议!”)结束结束
使用RemindMe
功能:
今天= NetDocEnum.MyDays.Monday;RemindMe(今天)
今天的会议。
另请参阅
相关的话题
这个话题有用吗?