文档

在.NET枚举中使用位标志

如何MATLAB万博1manbetx支持按位操作系统。枚举

方法定义的枚举,许多.NET语言支持逐位万博1manbetx操作系统。旗帜属性。MATLAB®Language没有等效的操作,因此提供了实例方法,用于对枚举对象执行逐位操作。按位的方法是bitandbitnotbitor,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 =周一,周五

使用位方法,例如bitxorallMtgs不修改的值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(今天)
今天的会议。

另请参阅

|||

相关的话题

这个话题有用吗?