【发布时间】:2016-08-31 06:26:46
【问题描述】:
我有一个 senario,我正在使用下面的枚举来做同样的事情
[Flags]
enum State
{
None = 0x00,
Added = 0x01,
Edited = 0x02,
Commented = 0x04,
Uncommented = 0x8,
Reordered = 0x16
}
我想得到这样的结果
如果添加的结果是
添加
如果那么编辑结果将是
添加、编辑
如果那么 Reordered 将是
添加、编辑、重新排序
如果那么评论将是
添加、编辑、重新排序、评论
如果那么 Uncommented 将是
已添加、已编辑、已重新排序、已注释、未注释
如果那么评论将是
已添加、已编辑、已重新排序、已评论、未评论、已评论
等等。
请告知我是否可以使用任何Bitwise 操作来做同样的事情。
【问题讨论】:
-
听起来你真的不想要按位标志,如果你实际上不能单独设置每个部分......
-
你不能在一个变量中多次存储相同的标志值,你需要创建一个
List<State>然后你可以删除标志语义 -
我喜欢这些值,尤其是 0x16 :)