使用.NET枚举使用位标志
如何MATLAB万博1manbetx支持位于系统
许多.NET语言支持对用枚举定义的枚举万博1manbetxSystem.Flags
属性。matlab®语言没有等效操作,因此提供了实例方法,用于对枚举对象执行位操作。位方法是bitand
,,,,咬伤
,,,,比尔
, 和Bitxor
。
枚举可以定义位标志。一个位标志可让您创建枚举的实例,以存储成员定义的值组合。例如,文件和文件夹具有属性,例如档案
,,,,隐
, 和只读
。对于给定文件,请根据这些属性中的一个或多个执行操作。使用位运算符,您可以创建和测试组合。
要使用位运算符,枚举必须具有:
这
标志
属性。在框架版本4中,这些枚举也有hasflag
方法。与功率相对应的值
2
。
创建.NET枚举位标志
使用MATLAB示例,netdocenum.mydays
枚举,在以下示例中。
假设您有以下计划活动:
星期一 - 部门会议,10:00
星期三和星期五 - 2:00的团队会议
周四— Volley ball night
You can combine members of the我的日子
枚举以创建MATLAB变量比尔
方法,加入两个成员。例如,创建变量Teammtgs
团队会议日,类型:
teammtgs = bitor(...netdocenum.mydays.friday,...netdocenum.mydays.wednesday);
创建一个变量allmtgs
会议的所有日子:
allmtgs = bitor(Teammtgs,...netdocenum.mydays.monday);
要查看哪个天属于每个变量,请输入:
Teammtgs allmtgs
Teammtgs =星期三,星期五allmtgs =星期一,星期三,星期五
从变量中删除标志
假设您的经理取消了本周的星期三会议。去除周三
来自allmtgs
变量,使用Bitxor
方法。
thisweekmtgs = bitxor(allmtgs,netdocenum.mydays.wednesday)
thisweekmtgs =星期一,星期五
使用诸如Bitxor
onallmtgs
不修改allmtgs
。此示例创建一个变量,这周
,其中包含操作的结果。
在变量中更换标志
假设您从周三
至周四
。去除周三
,,,,useBitxor
,并使用比尔
添加周四
。由于这是一个永久更改,请更新Teammtgs
andallmtgs
变量。
teammtgs = bitor(...(bitand(Teammtgs,...bitnot(netdocenum.mydays.wednesday))),),...netdocenum.mydays.thursday);allmtgs = bitor(Teammtgs,...netdocenum.mydays.monday);Teammtgs allmtgs
Teammtgs =星期四,星期五allmtgs =星期一,星期四,星期五
测试会员资格
创建以下内容提醒我
功能:
功能Remindme(Day)%day = netdocenum.mydays枚举teammtgs = bitor(...netdocenum.mydays.friday,...netdocenum.mydays.wednesday);allmtgs = bitor(Teammtgs,...netdocenum.mydays.monday);如果等式(Day,bitand(Day,Teammtgs))disp(“今天的团队会议。”)Elseif等式(Day,bitand(Day,allmtgs))disp('Meeting today.')别的disp('No meetings today!')结尾结尾
使用提醒我
功能:
今天= netdocenum.mydays.monday;Remindme(今天)
今天开会。